1.Start()
在Update方法被調(diào)用之前開始調(diào)用Start方法近哟,而且Start方法在整個(gè)MonoBehaviour生命周期內(nèi)只被調(diào)用一次虏两。Awake和Start不同的地方在于Start方法僅僅在腳本初始化后被調(diào)用揉燃,這樣允許你延遲加載任何代碼迎卤,直到代碼真正被使用時(shí)墩弯。Awake方法總是在Start方法執(zhí)行之前被調(diào)用它匕,這樣允許你初始化腳本代碼展融。
2.Awake()
當(dāng)腳本被加載后立即調(diào)用Awake方法,這個(gè)方法通常在Start()開始之前聲明某些變量或者游戲的狀態(tài)標(biāo)記符豫柬。同樣告希,Awake也是在MonoBehaviour聲明周期內(nèi)被調(diào)用一次扑浸。Awake在所有的對象(個(gè)人認(rèn)為是GameObject)實(shí)例化后被調(diào)用,因此綁定這個(gè)腳本的對象能與其他對象之間相互作用暂雹,例如首装,同過GameObjectFindWithTag方法查找其他對象创夜。
3.Update()
在Start方法執(zhí)行過后杭跪,游戲的每一幀都在調(diào)用此方法。
4.FixedUpdate()
每一幀都在調(diào)用此方法驰吓。當(dāng)處理Rigdibody時(shí)FixedUpdate應(yīng)該代替Update方法涧尿,比如,當(dāng)一個(gè)物體需要增加一個(gè)力時(shí)檬贰,應(yīng)該將這個(gè)力的代碼寫在FixedUpdate()里面姑廉。
void FixedUpdate() {
rigidbody.AddForce(Vector3.up);
}
5.LateUpdate()
每一幀都在調(diào)用此方法。當(dāng)每一幀的Update方法全部執(zhí)行完后翁涤,此方法開始被調(diào)用桥言。舉個(gè)例子來說吧,當(dāng)一個(gè)角色移動(dòng)而攝像機(jī)也要跟著移動(dòng)時(shí)葵礼,攝像機(jī)的處理就應(yīng)該在LateUpdate()里面了号阿。
6.OnGUI()
OnGUI()在每一幀被調(diào)用數(shù)次(several times),假如MonoBehaviour的enabled屬性設(shè)置為false時(shí)鸳粉,OnGUI()就失去作用了扔涧。
7.DontDestroyOnLoad()
進(jìn)入另一個(gè)場景時(shí),保證綁定此腳本的對象的內(nèi)存不被釋放掉届谈。也就是說綁定此腳本的GameObject在下一個(gè)場景中依然存在枯夜。