U3D sorting layer, sort order, order in layer, layer深入辨析
1,layer是對(duì)游戲中所有物體的分類別劃分,如UIlayer, waterlayer, 3DModelLayer, smallAssetsLayer, effectLayer等。將不同類的物體劃分到不同的層,便于相機(jī)揀選,在相機(jī)的cullmask中可以選擇渲染哪些層,不選擇的層則不會(huì)渲染。還可以用于射線檢測(cè)對(duì)象的揀選,可以指定只對(duì)某些層的對(duì)象進(jìn)行射線檢測(cè)。
2,canvas默認(rèn)是屏幕空間的2D對(duì)象,在屏幕空間時(shí)僅具有sort order屬性,當(dāng)把它設(shè)置為世界空間時(shí),sort order屬性消失了,變成另外兩個(gè)屬性: sorting layer, order in layer。
當(dāng)把畫布設(shè)置為worldspace后,畫布及畫布上的UI對(duì)象在世界空間默認(rèn)也是靠Z值來決定渲染順序的,離相機(jī)遠(yuǎn)的先渲染。當(dāng)設(shè)置了sorting layer后,渲染的次序就由sorting layer來確定了。sorting layer是自定義的標(biāo)識(shí)符,哪個(gè)sortinglayer在前(在layer & tags中設(shè)置的先后順序)哪個(gè)先渲染。
order in layer是個(gè)數(shù)值,是在同一個(gè)sorting layer內(nèi)的細(xì)分,sorting layer相同時(shí)order in layer的數(shù)值越小越先渲染。
屏幕空間的東西都處于UI層不需要sorting layer,只提供sort order(其實(shí)也就是order in layer)。?默認(rèn)情況下sort oder都是0,此時(shí)UI物件按照在hierachy中出現(xiàn)的順序決定渲染順序。如果sort order不同時(shí),值越小越先渲染。
3,特別注意sprite默認(rèn)是個(gè)3D空間的物體,就算把它放到一個(gè)屏幕空間的canvas上,它仍然是3D空間的物體,只遵循3D空間的規(guī)則:總是會(huì)被UI擋住。
?4,同時(shí)具有sorting layer, order in layer的對(duì)象:sprite, 世界空間的canvas,說明這兩種GO是可以相互遮擋的。
比如掛在世界空間畫布上的角色名字和用sprite實(shí)現(xiàn)的遮罩,通過調(diào)整sorting layer及order in layer就可以實(shí)現(xiàn)兩者之間的先后
僅具有sort order的對(duì)象:屏幕空間的canvas
只具有sorting layer的對(duì)象:不存在
只具有order in layer 的對(duì)象:不存在
沒有sorting order這個(gè)東西!
?
總結(jié)
以上是生活随笔為你收集整理的U3D sorting layer, sort order, order in layer, layer深入辨析的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C#一元运算重载的深入理解
- 下一篇: 【转】汇编 代码段数据段堆区栈区