Unity細節基礎(二)指令碼生命週期常用詳解

2021-09-18 01:27:40 字數 1367 閱讀 4275

第乙個疑惑:awake與start的區別

(1)awake是在所有例項被載入後,當指令碼所掛載的例項的active第一次為true時呼叫。也就是說,當指令碼掛載的這個例項第一次在場景中被使用或展示。與指令碼的例項是否被允許使用無關(onenable == true)無關。

(2)start函式在onenable函式之後執行,onenable是允許指令碼執行,start函式只執行一次,相當於是說,start函式是在指令碼第一次被允許執行後執行。

(4)第一階段:初始化階段---------------------------------1

1.awake()

2.onenable

3.start

第二階段:物理迴圈--------------------------------------------2

1.fixedupdate:物理迴圈操作新增在這個函式裡

2.yield waitforfixedupdate 攜程中的物理操作

是0.02秒跑一次,可能會比其他的快或慢

3.ontriggerenter/stay/exit

4.oncllisionenter/stay/exit

第三階段:滑鼠資訊輸入-------------------------------------------3

onmouse+?

第四階段:遊戲邏輯迴圈——一幀跑一次----------------------4

updata

yiled null

yield waitforseconds

yield www(http 舊的api)

yield startcoroutine

lateupdata(相機操作適合)

第五階段:scenerender

onprecull(攝像機指令碼掛載,某渲染被剔除)

--其他的在圖中有

第六階段:小組件的渲染

ondrawgizmos

第七階段:ui渲染-----------------------------------------5

ongui

第八階段:幀結束-----------------------------------------6

yield waitforendofframe

第九節段:遊戲暫停或退出

第十階段:指令碼不允許執行----------------------------------------7

ondisable

第十一階段:掛載物件刪除,遊戲結束--------------------------8

Unity 八)指令碼生命週期

不能在子執行緒中訪問主線程成員 執行時機 建立遊戲物件 立即執行 執行1次 作用 初始化 private void awake 先執行awake再start,先執行所有awake再所有start 執行時機 建立遊戲物件 指令碼啟用才執行 執行1次 作用 初始化 private void start ...

Unity 八)指令碼生命週期

不能在子執行緒中訪問主線程成員 執行時機 建立遊戲物件 立即執行 執行1次 作用 初始化 private void awake 先執行awake再start,先執行所有awake再所有start 執行時機 建立遊戲物件 指令碼啟用才執行 執行1次 作用 初始化 private void start ...

Unity指令碼生命週期

1.awake 喚醒事件 只執行一次 2.onenable 啟用事件 只執行一次 當指令碼元件被啟用的時候執行一次.3.start 開始時間 只執行一次 4.fixedupdate 固定更新事件,執行 n次,0.02 秒執行一次.所有物理元件相關的更新都在這個事件中處理.5.update 更新事件,...