u3d學習筆記三:U3D腳本的生命週期

U3D的腳本從喚醒到銷燬有着一個完整的生命週期,所有的週期函數都在MonoBehaviour這個基類中,基本上所有腳本都是繼承MonoBehaviour這個類的,在這對腳本生命週期中相對較爲重要的函數做一下備忘,函數講解基本都是來自API文檔。

腳本的生命週期中相對重要的函數如下所示(個人觀點):
Awake——>OnEnable–>Start——>Update——>FixedUpdate——>LateUpdate——>OnGUI——>OnDisable——>OnDestroy

  1. Awake函數,當一個腳本實例被載入的時候被調用,主要用於在遊戲開始之前初始化變量或者遊戲狀態。在整個生命週期中僅被調用一次,並且是在所有對象都被初始化之後調用,所以可以在Awake中訪問其他對象。(需要注意的是,不能在這個函數中調用協程)
  2. OnEnable函數,當對象變爲可用或者激活狀態時被調用
  3. Start函數,函數僅在Update函數第一次被調用前調用。在整個生命週期中也只是被調用一次,但是和Awake不同的是,Start函數只在腳本實例被啓動的時候調用,這裏也允許調用協程
  4. Update函數,當腳本啓動之後,會在每一幀中都被調動,在這函數中可以更新遊戲的狀態,是遊戲實現中非常常用的函數
  5. FixedUpdate函數,該函數也是腳本啓動後的每一幀都會被調用,但是與Update不同的是,FixedUpdate函數是專門用力處理Rigidbody,比如給剛體加一個力的作用。還有一個需要注意的是,FixedUpdate函數和Update函數的幀率是不一樣的。
  6. LateUpdate函數,跟Update函數一樣,也是每一幀都被調用。有一個特點就是,LateUpdate函數是在所有Update函數調用後才調用的,可以用於調整腳本的執行順序。
  7. OnGui函數,渲染和處理GUI事件的時候調用,這意味着你的OnGUI程序將會在每一幀被調用。要得到更多的GUI事件的信息查閱Event手冊。如果Monobehaviour的enabled屬性設爲false,OnGUI()將不會被調用。
  8. OnDisable函數,與OnEnable函數相反,OnDisable函數在對象變爲不可用或者非激活狀態時被調用,可以在此函數中做相關資源的釋放。
  9. OnDestroy函數,當腳本被銷燬的時候被調用。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章