1. 程式人生 > >Unity 修改子物體/UI層級遮擋的順序關係(親測有效)

Unity 修改子物體/UI層級遮擋的順序關係(親測有效)

 在同一個鏡頭中,canvas中所有的物體在進行渲染時,會按照先後順序,即後渲染的會遮住先渲染的。因此在設定一些比如按鈕的遮擋關係的時候。可以將想要在最上層的UI放到最後去渲染,修改Hierarchy層級面板從上往下的順序。
舉個例子:
 將gameover放到最上面時,就會被擋到。
這裡寫圖片描述
這裡寫圖片描述
 當將順序調到下面之後,就不會被擋到了。
這裡寫圖片描述
這裡寫圖片描述

 所以的話,在同一個canvas中,物體的的排列順序會直接影響最後UI介面的顯示效果。因為遊戲中一般會動態產生物體,所以需要使用程式碼來調整子物體的順序。下面給出untiy5.x版本的指令碼,對於4.x的話,自己對照著呼叫相關函式:

 int count
= parentTransform.childCount; //引數為物體在當前所在的子物體列表中的順序 //count-1指把child物體在當前子物體列表的順序設定為最後一個,0為第一個 childTransform.SetSiblingIndex(count - 1);