1. 程式人生 > >Unity3D開發中繼承了MonoBehaviour的類,不要再建構函式初始化。

Unity3D開發中繼承了MonoBehaviour的類,不要再建構函式初始化。

MonoBehaviour派生出來的類會作為Unity3D中的Component掛載在GameObject上,而GameObject會在編輯器的多個地方被顯示,如場景編輯器內、Prefab選中時等,這些時候都需要呼叫它們的建構函式來初始化成員變數的預設值,以便在編輯器中顯示它們。也就是說,建構函式不光在遊戲執行時會被呼叫,它的呼叫時機是“未知的”。而Awake和Start只會在遊戲執行時被呼叫,並嚴格定義了它們的呼叫時機和順序。
所以,建構函式不可以描述遊戲邏輯,請用Awake和Start。