1.Start()
在Update方法被調用之前開始調用Start方法,而且Start方法在整個MonoBehaviour生命周期內只被調用一次。Awake和Start不同的地方在于Start方法僅僅在腳本初始化后被調用,這樣允許你延遲加載任何代碼,直到代碼真正被使用時。Awake方法總是在Start方法執行之前被調用,這樣允許你初始化腳本代碼。
2.Awake()
當腳本被加載后立即調用Awake方法,這個方法通常在Start()開始之前聲明某些變量或者游戲的狀態標記符。同樣,Awake也是在MonoBehaviour聲明周期內被調用一次。Awake在所有的對象(個人認為是GameObject)實例化后被調用,因此綁定這個腳本的對象能與其他對象之間相互作用,例如,同過GameObjectFindWithTag方法查找其他對象。
3.Update()
在Start方法執行過后,游戲的每一幀都在調用此方法。
4.FixedUpdate()
每一幀都在調用此方法。當處理Rigdibody時FixedUpdate應該代替Update方法,比如,當一個物體需要增加一個力時,應該將這個力的代碼寫在FixedUpdate()里面。
void FixedUpdate() {
rigidbody.AddForce(Vector3.up);
}
5.LateUpdate()
每一幀都在調用此方法。當每一幀的Update方法全部執行完后,此方法開始被調用。舉個例子來說吧,當一個角色移動而攝像機也要跟著移動時,攝像機的處理就應該在LateUpdate()里面了。
6.OnGUI()
OnGUI()在每一幀被調用數次(several times),假如MonoBehaviour的enabled屬性設置為false時,OnGUI()就失去作用了。
7.DontDestroyOnLoad()
進入另一個場景時,保證綁定此腳本的對象的內存不被釋放掉。也就是說綁定此腳本的GameObject在下一個場景中依然存在。