協程中有一個 yield return null:根據unity的官方解釋是下一幀到這才繼續運行,同時根據unity腳本生命周期可知yield return null 之后的程式應在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后直接執行,這就很奇怪了,不是應該是下一幀來執行嗎,怎么本幀就執行了
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/282962.html
標籤:Unity3D
上一篇:測量技術
下一篇:關于企業虛擬化求助
