1. 程式人生 > >Unity3D——學習分享(五)常用的系統函式

Unity3D——學習分享(五)常用的系統函式

世間萬物都有其規律和秩序,同樣在Unity3D中呼叫系統函式也是有它的順序的。

下面是在Unity3D中比較常見的系統函式和一般呼叫的順序:

呼叫順序 函式名
1 void Awake()
2 void Start()
3 void Update()
4 void Fixedupdate()
5 void Lateupdate()
6 void OnGUI()
7 void Reset()
8 void OnDisable()
9 void OnDestroy()





void Awake(){
}

1.Awake()是用來在遊戲開始前初始化遊戲中的變數和遊戲狀態的,自身的指令碼在整個生命週期只被呼叫一次,它是在所有的遊戲物件被初始化之後呼叫。



void  Start() {
}

2.Start()在Update函式第一次被呼叫之前呼叫。在它的生命週期同樣只被呼叫一次。總是在Awake()之後呼叫。Awake()和Start()的主要區別是:Start()只在指令碼例項被啟用時呼叫,你可以在一定的情況下適當地調整延遲初始化程式碼。




void Update(){
} //更新

 void Fixedupdate(){
 }//固定更新
 
 void Lateupdate(){
 }//晚於更新

這三個函式比較類似,都是每一幀都被呼叫,都是用來更新的。

3.Update()每一幀的時間不固定,假設第一幀與第二幀的時間為T1,第三幀與第四幀的時間為T2,那麼T1與T2不一定相等。Update()受當前渲染的物體影響(比如遊戲物件的數量等),有時快有時慢,幀率是不固定的。

4.FixedUpdate()每幀與每幀之前的時間間隔是固定的,不受渲染物體和幀率的影響,它是以固定的時間間隔被呼叫。一般用於多對一些物理屬性的更新操作。

5.LateUpdate()是在所有Update函式呼叫後被呼叫。一般用於調整指令碼的執行順序。比如在Update()函式裡更新主角的移動,就可以在LateUpdate()函式裡更新跟隨主角的攝相機的移動。




void OnGUI() {
}

6.OnGUI() 是在渲染和處理GUI事件時被呼叫。例如新增Button、Label、滑動條等會被使用,同樣每幀執行一次。



 void Reset(){
}

7.Reset()函式是在檢視檢視中的Reset重置按鈕或者第一次新增該元件時被呼叫的,該函式只在編輯模式下被呼叫。一般用於在檢視檢視中給定一個常用的預設值。



void OnDisable() {
}
void OnDestroy(){
}

8.OnDisable()函式是在遊戲物體被銷燬時以及指令碼被解除安裝時被呼叫,常用於清理程式碼。

9.OnDestroy()只會在預先被啟用的遊戲物件上被呼叫。常用於遊戲物體的銷燬。它們都不能用於協同程式。

這節就分享到這裡。