Unity学习笔记 关于通过使用协程(IEnumerator)的思路处理非确定触发时间的事件

使用场景

有一些需求的功能对于程序来说不确定什么情况会被调用、触发,比如像获取输入设备,程序一开始瞬间是不会立马获取到的,又或者说某个物体的生成,程序需要时间去做生成的动作。
也就是说,这些条件都不是固定的,是动态决定的。
虽然可以在Update函数里面来做判断处理,但是非常不建议这么做。
这个时候使用协程会有效的帮助解决这样的需求。

使用方法

协程的理论知识就不多做说明,可自行研究
下面直接附上使用方法:

// 满足条件表达式:condition
// 满足条件执行内容: DoAction(...)

private void Start()
{
    
    
    // 调用协程
		StartCoroutine(myIEnumeratorFunction());
}

/// <summary>
/// 协程函数
/// </summary>
IEnumerator myIEnumeratorFunction()
{
    
    
    while(true)
    {
    
    
        if(condition)
        {
    
    
            DoAction(...);
            yield break;       //直接结束该协程
        }
        else
        {
    
    
            yield return null; //跳到下一帧再执行
        }
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_42358083/article/details/125657631