首先是reset相比於其他函式較特殊 只在編輯模式下呼叫且只呼叫一次 在使用者點inspector面板下的reset按鈕時或第一次新增元件時呼叫
awake 該函式中進行遊戲物件的初始化 例如gameobject.find gameobject.findwithtag awake函式遊戲執行之後第乙個執行且執行一次 生命週期執行完一次後直接跳到onenable 不走awake 如果要程式執行之後要禁用指令碼 在awake指令碼中寫this.enable=false 只執行到enable函式 不進行以下生命週期函式的執行
enable 該函式中判斷當前指令碼狀態是否可繼續執行 如果enable=true繼續執行 enable=false不可執行 但可以在其他指令碼將enable=true繼續往下執行
start 該函式在生命週期中也是只執行一次 其中可以由自己調整初始化**順序 假如enable為false時在別的指令碼中設定為true 也就是說該指令碼可以繼續執行了 生命週期要重新到enable函式 走到start時要判斷start函式是否執行過 執行過就不再執行 比如初始化主角位置為0 生命週期執行完一次之後主角位置改變了 則不能再次進入start函式將主角位置初始化
fixedupdate 固定幀更新 常常做一些物理行為的方法 比如剛體加力 發子彈時 就將作用力用在該函式的固定幀中
update 該函式在每一幀都被呼叫 用於更新邏輯
update結束後檢測協同程式 任何乙個協程都有等待的秒數返回null或是開啟協程的時間 在ienumerator中執行邏輯
lateupdate 該函式也是每幀呼叫 是所有update中最後執行的乙個 跟隨物體的相機邏輯可寫在該函式
ongui 渲染圖形介面
ondisable 當enable為false時執行該函式 可用於清理** 執行到該函式時 指令碼不會銷毀
ondestroy 當手動銷毀遊戲物件或遊戲物件被銷毀時 呼叫該函式 當前生命週期結束
生命週期的迴圈執行 各種物體才能動起來
下一幀執行操作怎麼處理 開啟協程 協程和update一樣 每幀都會執行 協程是當條件滿足時執行 且當協程條件滿足之後 update函式將停止執行 由協程執行下一幀的邏輯 下一幀執行可用yield return null 等待下一幀執行 到達這一幀時暫停 下一幀從這兒開始執行
下乙個fixedupdate執行操作怎麼操作 yield return fixedupdate 等待處理物理邏輯的固定幀週期迴圈結束後執行 就是等待一次物理引擎的更新
當前幀最後執行操作怎麼處理 yield return new waitforendofframe 等到相機和gui相機渲染後執行 就是等到這幀的末尾再執行 但仍然是當前幀 就是在下一幀開始前
ugui在ongui中執行 ongui首先處理布局和重繪 然後處理各種事件
生命週期函式流程 1在onenable中指令碼不可執行時 直接轉到ondisable函式 ondisable只在指令碼禁用時呼叫 ;2指令碼可執行時轉到start 執行一次 3fixedupdate固定更新 yield waitforfixedupdate等待固定更新 4各種輸入事件 事件的觸發 5update更新 根據平台fps幀率每幀執行 6yield return null 暫停協程 下一幀繼續執行 7lateupdate 更新中最遲的乙個更新多用於相機跟隨 8ongui渲染和處理事件 9yield waitforendofframe等待幀結束 當前幀的末尾 10ondestroy 遊戲物件被銷毀時 呼叫函式
Unity生命週期
生命週期 reset 是第一次拖入指令碼的時候執行,只在編輯狀態下執行,只執行一次 awake 只執行一次 onenable 當每次該指令碼從enable false狀態切換到enable true 啟用 狀態時執行,不論是從inspector操作還是 改變,該函式是針對該元件的,但是如果該元件被銷...
vue 的生命週期再次理解
重點1 生命週期的鉤子函式,不能使用箭頭函式。重點2 每個週期的作用以及應用場景 beforecreate 資料渲染之前,data裡面的資料還沒賦值到定義的變數上,dom樹也沒有開始渲染。應用場景 相當於剛進入頁面,可以加一些載入中的樣式,等待全部渲染完畢,再關閉載入中動畫。create 資料渲染完...
Unity指令碼的生命週期
新增任何任何指令碼都必須遵守自身生命週期法則,下面介紹一下生命週期中幾個重要的方法 1 function update 正常更新,用於更新邏輯,此方法每朕系統自動自動呼叫一次。2 function lateupdare 推遲更新,此方法在update 方法執行完成後呼叫,同樣是每一幀都會呼叫 3 f...