UGUI學習(二)渲染模式和層級順序

2021-08-02 03:23:20 字數 1410 閱讀 5352

1,當有多個canvas並且渲染模式都為overlay。

這種情況下,渲染順序是由canvas元件下的sort order決定的,值越大的越後渲染。

2,當有多個canvas並且渲染模式都為camera。

這種情況下,渲染順序首先由rendener camera的depth值決定,值越大越後渲染。

如果depth值相同,那麼由canvas元件下的sortint layer順序決定,順序越後則越後渲染。

如果depth值和layer值都相同的情況下,渲染順序由order in layer決定,值越大越後渲染。 (注意:若rendener camera都是同乙個攝像機,則不考慮depth情況)

3,當有多個canvas並且渲染模式都為world。

這種情況下,渲染順序由canvas元件下的sortint layer順序決定,順序越後則越後渲染。

如果layer值都相同的情況下,渲染順序由order in layer決定,值越大越後渲染。

特別注意,當layer和order值都相同的情況下,此時渲染順序由canvas距離render camera的距離決定,距離越近越後渲染。( 只有world模式有這種情況,因其他模式下canvas都是位置固定不可移動的。並且以上情況只考慮canvas都出現在render camera攝像範圍的情況下。)

4,當有多個canvas並且渲染模式都存在的情況下。

這種情況下,首先overlay模式的canvas永遠是最後渲染,並且同為overlay模式的canvas在sort order的值越大時越後渲染。

其次,camera和overlay同時存在的情況下有兩種情況:若使用的不同的相機,則由攝像機的depth決定,值越大越後渲染。若使用的是相同的相機,則是由canvas距離攝像機的距離決定的,距離越近的越後渲染。

-------------------------------------

1.unity3d中的渲染順序如下:

不同的camera的depth

相同camera下的不同sortinglayer

相同sortinglayer下的不同z軸/order in layer

2.改變控制項之間的層級關係

(1)同一canvas下:

改變控制項transform的siblingindex,

transform.getsiblingindex();

transform.setsiblingindex(int index);//index值越大,越後渲染,層級越大,越顯示在前面

(2)不同canvas下:

設定canvas下的sort order //sort order值越大,越後渲染,層級越大,越顯示在前面

渲染順序與hierarchy面板裡物體的擺放順序也有關 ,面板裡越靠上的物體越先被渲染,越後被渲染的顯示在越前面

設計模式(二) 工廠模式的學習和使用

在工廠模式 factory pattern 中,我們在建立物件時不會對客戶端暴露建立邏輯,並且是通過使用乙個共同的介面來指向新建立的物件。意圖 定義乙個建立物件的介面,讓其子類自己決定例項化哪乙個工廠類,工廠模式使其建立過程延遲到子類進行。解決型別 主要解決介面選擇的問題。關鍵 建立過程在其子類執行...

設計模式學習筆記之二 設計模式和量體剪衣

現在我想,軟體設計和服裝設計師的工作其實很相似,對於乙個服裝設計師來說,設計的第一步是從觀察開始的,他會仔細觀察顧客的身材,是胖是瘦,各個部分的比例如何,當前穿著的服裝的優缺點,顧客將會穿著這套衣服什麼時間出現在什麼場合,顧客的喜好 顧客的朋友會如何看待,客戶的希望,他願意花多少錢。在這之後才是設計...

設計模式學習筆記二 物件導向基礎五之集合和泛型

陣列 陣列的優點 陣列在記憶體中連續儲存,可以快速而容易的從頭到尾的遍歷元素,可以快速的修改元素 缺點 建立時必須要指定陣列變數的大小,還有就是兩個元素之間新增元素比較困難。集合.net framework提供了用於資料儲存和檢索的專用類,這些類統稱集合。這些類提供對堆疊 佇列 列表和雜湊表的支援。...