2015-09-19 48 views
2

所以我有一個叫做Enemy,Player和Gamemanager的類。我建立了我的統一層級系統(上統一命名爲「層次結構」下的左側),像這樣:我想我誤解了Unity3d的層次系統

Enemy (1) 
Enemy (2) 
Enemy (3) 
Enemy (4) 
Enemy (5) 
Player (1) 
GameManager; 

但是當我把void Start() { Debug.Log(this);}(每類的),我得到這個

Enemy (1) 
Enemy (5) 
Enemy (3) 
GameManager; 
Enemy (2) 
Player (1) 
Enemy (4) 

什麼給?如果在加載對象時沒有改變,Hierarchy系統的重點是什麼?無論如何,我可以做到這一點,所以我可以得到第一個結果,當我做void Start (Debug.Log(this))

回答

1

如果您遵循良好的編程習慣,執行順序應該沒有關係。

但是,有很多初學者使用Unity的遊戲開發者,這可能解釋了他們爲什麼將Script Execution Order添加到項目設置。

默認情況下,清醒,OnEnable和不同 腳本的更新函數被調用的腳本加載的順序(這是 任意的)。但是,可以使用 腳本執行順序設置(菜單:編輯>項目設置> 腳本執行順序)修改此順序。

的更多信息,請訪問: http://docs.unity3d.com/Manual/class-ScriptExecution.html

+0

沒關係啊,好知道。 – Beckley