Unity Manual描述了調用腳本函數的順序。但是,我想知道是否有關於GameObjects本身在Unity中被考慮的順序的規則。Unity中的GameObject更新順序
GameObjects基本上是Unity場景圖的節點,並且(假設場景本身是根節點)它們形成一棵樹。我在想,如果這個樹結構在GameObjects被考慮的順序上施加了任何規則。
如前所述,手冊描述了Awake()
總是在Start()
之前調用,在第一次調用Update()
之前總是調用等。然而,這些時間關係(大部分)在單個遊戲對象的單個腳本的範圍內給出。我想知道是否還有一條規則說明在場景中所有GameObjects上調用Start()
(或任何其他方法)的順序。
具體來說,我想知道:
- 學生家長總是認爲自己的孩子有過嗎?
- 兄弟姐妹是否按照它們在場景圖中顯示的順序進行考慮?
- 腳本執行命令僅在單個GameObject的範圍內強制執行,還是考慮所有GameObjects?
我想告訴你,你可以很容易地得到你的答案,一個基本的幾個對象,腳本和兒童設置,然後我意識到你發佈的問題的答案。現在我的問題出現了,因爲這是一個相當簡單的答案的微不足道的問題,爲什麼要問? – Everts
這是一個多年來一直困擾着我的問題,現在我終於進行了測試,我認爲這可能值得分享,因爲我無法找到關於SO的任何書面答案。我相信這是造成很多人頭痛的原因,特別是在重新加載場景時訂單可能會改變的事實。就像「昨天晚上我關閉它時它工作一樣,爲什麼今天它不工作?」 –
我想說,如果你需要對象A發生在對象B之前,你有一個關係,所以你不能再依靠Unity更新系統,而A必須調用B.你自己說過,重新加載可能會改變順序,所以知道下次可能會出錯,這意味着如果您繼續依賴Unity Update知道它將在某一天失敗,那麼您就可以做到這一點。 – Everts