使用场景
有一些需求的功能对于程序来说不确定什么情况会被调用、触发,比如像获取输入设备,程序一开始瞬间是不会立马获取到的,又或者说某个物体的生成,程序需要时间去做生成的动作。
也就是说,这些条件都不是固定的,是动态决定的。
虽然可以在Update函数里面来做判断处理,但是非常不建议这么做。
这个时候使用协程会有效的帮助解决这样的需求。
使用方法
协程的理论知识就不多做说明,可自行研究
下面直接附上使用方法:
// 满足条件表达式:condition
// 满足条件执行内容: DoAction(...)
private void Start()
{
// 调用协程
StartCoroutine(myIEnumeratorFunction());
}
/// <summary>
/// 协程函数
/// </summary>
IEnumerator myIEnumeratorFunction()
{
while(true)
{
if(condition)
{
DoAction(...);
yield break; //直接结束该协程
}
else
{
yield return null; //跳到下一帧再执行
}
}
}