Unity3D——學習分享(五)常用的系統函式
阿新 • • 發佈:2018-11-28
世間萬物都有其規律和秩序,同樣在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(){
}