Unity3D中自帶事件函式的執行順序

2021-10-08 09:35:37 字數 1497 閱讀 7370

在unity3d指令碼中,有幾個unity3d自帶的事件函式按照預定的順序執行作為指令碼執行。其執行順序如下:

編輯器(editor)

第一次場景載入(first scene load)

這些函式會在乙個場景開始(場景中每個物體只呼叫一次)時被呼叫。

注意:當乙個場景被新增到場景中,所有指令碼上的awake()和oneable()函式將會被呼叫在start()、update()等它們中任何函式被呼叫之前。自然的,當乙個物體在遊戲過程中被例項化時這不能被強制執行。

第一幀更新之前(before the first frame update)

對於那些被新增到場景中的物體,所有指令碼上的start()函式將會在它們中任何的update()函式之前被呼叫,自然的,當乙個物體在遊戲過程中被例項化時這不能被強制執行。

在幀之間(in between frames)

更新順序(update order)

當你在跟蹤遊戲邏輯和狀態,動畫,相機位置等的時候,有幾個不同的事件函式你可以使用。常見的模式是在update()函式中執行大多數任務,但是也有其它的函式你可以使用。

渲染(rendering)

協同程式(coroutines)

正常的協同程式更新是在update函式返回之後執行。乙個協同程式是可以暫停執行(yield)直到給出的依從指令(yieldinstruction )完成,寫成的不同運用:

yield waitforseconds:一段指定的時間延遲之後繼續執行,在所有的update函式完成呼叫的那一幀之後。

yield waitforfixedupdate:所有指令碼上的fixedupdate函式已經執行呼叫之後持續。

yield startcoroutine:協同程式鏈,將會等到mufunc函式協程執行完成首先。

銷毀(when the object is destroyed)

退出遊戲(when quitting)

這些函式會在你場景中所有的啟用的物體上呼叫:

ondisable:當行為變為非啟用(disable)或非啟用(inactive)時呼叫。

指令碼的生命週期流程圖

Unity3D 常用事件

這裡總結一下u3d常用的一些事件 按下事件,getkeydown 抬起事件,input.getkeyup 長按事件,input.getkey 任意鍵按下事件,input.anykeydown 滑鼠按下事件,input.getmousebuttondown 0為左邊,1位右邊,2位中間 得到滑鼠當前三...

Unity3D中元件事件函式的執行順序

unity 指令碼中有許多按預設順序以指令碼身份執行的事件函式。其執行順序如下 啟動場景時呼叫這些函式 為場景中的每個物件呼叫一次 有幾個不同的事件有助於追蹤遊戲邏輯與互動 動畫 相機位置等內容。常用的方法是執行update 函式中的大部分任務,但也可使用其他函式。正常的協同程式更新是在返回 upd...

Unity3D中元件事件函式的執行順序

unity 指令碼中有很多按預設順序以指令碼身份執行的事件函式。其執行順序例如以下 啟動場景時呼叫這些函式 為場景中的每乙個物件呼叫一次 有幾個不同的事件有助於追蹤遊戲邏輯與互動 動畫 相機位置等內容。經常使用的方法是執行update 函式中的大部分任務。但也可使用其它函式。正常的協同程式更新是在返...