曾经一度认为,使用IEnumerator时yield return 1代表的是等一帧,yield return 100是等100帧,网上也有很多这样的帖子,其实发现是不正确的。
yield return 1,后面的1是没有实际意义的,只是为了返回,等下一帧继续进行和yield return 0还有yield return null是一样的。
一个测试证明:
using UnityEngine;
using System.Collections;
public class test : MonoBehaviour {
IEnumerator Test1()
{
yield return 1;
Debug.Log("test1" );
}
IEnumerator Test2()
{
yield return 1000000;
Debug.Log("test2" );
}
void OnGUI()
{
if (GUILayout .Button("enter test2 ", GUILayout.MaxWidth(200f)))
{
StartCoroutine(Test2());
StartCoroutine(Test1());
}
}
}
结果如图: