unity中的層級問題

2021-10-03 02:01:24 字數 1587 閱讀 3934

注:在ui介面顯示中,場景中需要乙個清屏的攝像機,所以至少應該有兩個攝像機。

1.當ui介面中有粒子特效時,給ui新增canvas,不會影響粒子的層級。

2.ui中新增貼圖特效時,ui中的canvas的order in layer層級不能太高,太高會使使貼圖的特效看不見,如果硬是要這樣,那只能修改粒子的渲染佇列數值。

1.camera的depth

depth小的先渲染

2.sorting layer 

在tags & layers設定中可見

3.order in layer

相對於sorting layer的子排序,用這個值做比較時只有都在同一層時才有效。

4.render queue

shader中對tags設定的「queue」。

排序結果1、camera depth

永遠最高。camera depth小的一定先進渲染管線。除非ugui的screen space - overlay

2、當sorting layer和order in layer相同時

renderqueue小的先進渲染管線。

3、當sorting layer和order in layer不相同時!

3.1 當兩個材質使用了不同的renderqueue,且這兩個renderqueue都在[0~2500]或[2501~5000]時,sortinglayer和orderinlayer的排序生效。

3.2 當兩個材質使用了不同的renderqueue,且這兩個renderqueue分別在[0~2500]和[2501~5000]時,則一定會按照renderqueue繪製,無視sortinglayer、orderinlayer的排序。

2500為unity作為opacity(不透明)和transparent(透明)的分界線,因此如果兩個材質的queue分別在分界線的兩邊,也就是乙個不透明乙個透明,則unity一定會先把不透明的物體送進渲染管線,無論sorting layer和order in layer到底怎麼排序。

ugui:

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  

meshrenderer的sortinglayer與canvas的sortinglayer相同

meshrenderer的sortingorder與canvas的orderinlayer相同

css中的層級問題

在css中,涉及到定位 浮動 z index的層級問題時很容易讓人雲裡霧裡。本來我以為想讓誰的層級更高就直接給它設定z index就好了。可是這次做京東專案時,我設定的卻不起作用。情況類似於這樣 class d1 class d2 div div class d3 div d1的高度100px,d2...

Unity中UI和遊戲物體之間的層級渲染

之前使用乙個uicamera和乙個maincamera做場景,希望給場景加上乙個background,但是將background和操作的ui都綁在uicamera,將遊戲物體正常地用maincamera渲染時,出現了遊戲物體遮擋住button或者background直接遮擋住了整個場景的情況。在不清...

Unity指令碼在層級面板中的執行順序測試1

第二篇測試迴圈時和動態建立時的呼叫順序 link 測試版本unity4.6。因為新版本對transform的排序做了改變,所以不排除舊版本的測試結果不一樣。測試時,使用awake中新增debug.log name 來測試順序 1.不管prefab還是非prefab。執行順序最高的均是最後建立的。比如...