1.首先看一下untiy官方對awake()和start()的定義函數
awake()和start()函數會在腳本加載後自動調用,awake()會先被調用,即便腳本未被調用。最好用來設置腳本之間的引用和初始化。對象
而start()在awake()以後調用,在第一次調用update()以前,但必須是腳本已經被啓用的狀況下,也就是說start()中寫腳本啓用後須要執行的操做,你也能夠把一些初始化代碼放在這裏。blog
舉個栗子,好比一個敵人進入場景,你能夠用awake()設置子彈數量,而後在start()中啓用敵人的射擊功能,也就是在腳本啓用後。(注:start和awake只能在腳本生命週期中調用一次)生命週期
總結:因此在進入腳本前咱們能夠用awake()函數進行初始化,這樣就不用在腳本中進行分別設置了,而start()方法用於腳本開始執行時須要的功能。it
2.關於update()和fixedup()的區別date
update()應該是unity中最經常使用的函數,使用這個函數的腳本每一幀都會自動調用,大部分須要週期性改變的內容都放置在這個函數中,非物理對象的移動,計時器,輸入檢測,一般都放在update()中,注意update()並不根據正常的時間軸調用,若是某一幀使用的時間大於下一幀,那麼每幀調用的間隔將不一樣,update()和fixedupdate()不一樣,可是有幾個重要的區別,fixedupdate()根據正常的時間軸調用,且每次調用的間隔都是相同的,在調用fixedupdate()函數以後會進行須要的物理計算,好比有剛體的物理對象,須要放在fixedupdate()中,fixedupdate()經常使用於移動物理對象。引用