Skip to content

[Unity] 使用 SetSiblingIndex() 設定子物件順序

今天我要紀錄的,是在 Unity 中如何透過 SetSiblingIndex() 函式來設定子物件在父物件體下的『順序』。

這乍看之下是不太重要的功能。不過,當我今天在生成大量物件的時候,我碰到一個奇怪的問題:有時候『較早生成的物件』會擋住『較晚生成的物件』;有時候則是『較晚生成的物件』會擋住『較早生成的物件』。

這樣一來,我根本無法好好地設計場景。直到最後我乾脆在生成所有物件時,直接給它們各自設定了順序才解決。


使用方法

假設 objectList 是一個 List<GameObject> 資料型態的物件,裡頭放了我們生成的子物件。我們可以使用以下指令賦予他們順序(不過若是父物件底下還有其他物件,則需要小心計算子物件總數)。

for (int i=0; i<objectList.Count; ++i) {
    objectList[i].gameObject.transform.SetSiblingIndex(i);
}




References


Read More

Tags:

Leave a Reply