-1
這是如何完成的,我可以自己使用系統類型嗎?它是否爲摘要?在Unity3D中,每個腳本都一次調用更新。怎麼樣?
這是如何完成的,我可以自己使用系統類型嗎?它是否爲摘要?在Unity3D中,每個腳本都一次調用更新。怎麼樣?
不幸的是,確切的代碼是由統一本身調用的,你不能用像ILSpy這樣的應用程序來查看它。
本質上,Unity會在活動場景中獲取所有GameObjects,並檢查其MonoBehaviour腳本是否具有更新功能,如果他們這樣做,則會調用它。
你可以想象它類似於這樣的事情:
void OnFrameRender()
{
foreach (GameObject g in allGameObjectsInCurrentScene)
{
MonoBehaviour m = g.GetComponent<MonoBehaviour>();
if (m.GetType().GetMethod("Update") != null)
m.Invoke("Update");
}
// Additional render logic
}
由於統一本身在C++中,而不是在C#編碼,這不會是確切的代碼,但這種方法可能是相似的。
謝謝,這就是我的意思! –
是什麼讓你覺得它一次調用所有的人? (這不是真的) – UnholySheep
好吧,不是litteraly。我的意思是自動。 Unity如何在場景中的所有monobehaviours上調用該方法? –
對於確切的實現細節,你不得不問Unity3D開發者。但實質上,所有通過Inspector附加的腳本都會在列表中進行註冊,然後在每個框架中進行迭代。 – UnholySheep