UGUI渲染順序

2021-08-20 21:39:26 字數 1383 閱讀 1580

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面板裡物體的擺放順序也有關 ,面板裡越靠上的物體越先被渲染,越後被渲染的顯示在越前面。

Unity筆記 UGUI物體的渲染順序

不同camera的depth。大在前,小在後 同camera的sortinglayer。下在前,上在後 同sortinglayer下的order in layer。大在前,小在後 同order in layer下的z軸。小在前,大在後 注意 如果是多個canvas的渲染先後順序 調canvas下面有...

Unity筆記 UGUI物體的渲染順序

不同camera的depth。大在前,小在後 同camera的sortinglayer。下在前,上在後 同sortinglayer下的order in layer。大在前,小在後 同order in layer下的z軸。小在前,大在後 注意 如果是多個canvas的渲染先後順序 調canvas下面有...

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

1,當有多個canvas並且渲染模式都為overlay。這種情況下,渲染順序是由canvas元件下的sort order決定的,值越大的越後渲染。2,當有多個canvas並且渲染模式都為camera。這種情況下,渲染順序首先由rendener camera的depth值決定,值越大越後渲染。如果de...