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

2021-09-07 10:33:05 字數 1879 閱讀 9361

unity 指令碼中有很多按預設順序以指令碼身份執行的事件函式。

其執行順序例如以下:

啟動場景時呼叫這些函式(為場景中的每乙個物件呼叫一次)。

有幾個不同的事件有助於追蹤遊戲邏輯與互動、動畫、相機位置等內容。

經常使用的方法是執行update() 函式中的大部分任務。但也可使用其它函式。.

正常的協同程式更新是在返回 update 函式之後執行。

協同程式是可自行停止執行 (yield),直到給定的 yieldinstruction 結束再繼續執行的函式。協同程式 (coroutines) 的不同用途:

程式將在場景的全部活動物件上呼叫這些函式:

ondisable:此函式會在行為被禁用或不活動時呼叫。

剛體插值應用 transform.position 和旋轉

onmousedown/onmouseup 等事件

全部 update 函式

將動畫優化為高階、混合並應用動畫,以進行變換

全部 lateupdate 函式

渲染在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中元件事件函式的執行順序

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

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

在unity3d指令碼中,有幾個unity3d自帶的事件函式按照預定的順序執行作為指令碼執行。其執行順序如下 編輯器 editor 第一次場景載入 first scene load 這些函式會在乙個場景開始 場景中每個物體只呼叫一次 時被呼叫。注意 當乙個場景被新增到場景中,所有指令碼上的awake...

Unity3D 常用事件

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