協程中有一個 yield return null:根據unity的官方解釋是下一幀到這才繼續運行,同時根據生命周期可知應在Update后面運行
下面是我的問題:分別在Start Awake OnEnable 中運行測驗啟動協程
private void Awake()
{
// StartCoroutine("tt");
}
private void OnEnable()
{
// StartCoroutine("tt");
}
private void Start()
{
StartCoroutine("tt");
}
private int a = 0;
void Update()
{
print("Update");
}
IEnumerator tt()
{
print("IEnumerator");
yield return null;
print("tt");
}
結果是:
Start中的協程是經過兩個Update后執行,符合unity官方解釋
Awake/Onenable中的協程是經過一個Update后執行,這就很奇怪了,不是應該是下一幀來執行嗎,怎么本幀就執行了
uj5u.com熱心網友回復:
頂!
uj5u.com熱心網友回復:
可能是Awake/Onenable與Update之間有空幀,協程就在那幀等待了。uj5u.com熱心網友回復:
挽尊
uj5u.com熱心網友回復:
有大佬來解釋一下嗎uj5u.com熱心網友回復:
這個可能用的,我需要明確一些啊,要有理論依據的
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/278265.html
標籤:Unity3D
下一篇:初識HTML02
