目录
- 事件函数的执行顺序
- 定义
- 使用
- yield instruction中的子类
- 总结
参考链接 :Unity 5分钟基础的了解协程
事件函数的执行顺序
定义
- 定义:开启一段和主程序异步执行的逻辑
- 异步执行:是指语句在异步执行模式下,各语句执行结束的顺序与语句执行开始的顺序并不一定相同
使用
- 需要用IEnumerator迭代器命名
- 使用yield return关键字返回
- 执行顺序:Start --> Update --> yield return 0/null (将程序暂时挂起,在这一帧的update执行后再执行之后的代码)
- 开启/停止 协程
StartCoroutine(Print()); // 开启协程
StopCoroutine(Print()); // 停止指定协程
StopAllCoroutines(); // 停止所有协程
public class Coroutine : MonoBehaviour
{
void Start()
{
StartCoroutine(Print());
Debug.LogError("2222");
}
IEnumerator Print()
{
Debug.LogError("1111");
yield return 0;
Debug.LogError("3333");
}
}
yield instruction中的子类
使用时需要添加new关键字
- WaitForSeconds 等待对应秒数(受timescale影响)
yield return new WaitForSeconds(1);
- WaitForSecondsRealtime 等待对应秒数(不受timescale影响)
yield return new WaitForSecondsRealtime(1);
3. WaitForFixedUpdate 在 FixedUpdate(物理运算) 所有代码执行完毕再运行后面的代码
4. WaitForEndOfFrame 在这一帧所有代码执行完(包括Update、FixedUpdate和GUI渲染)后再运行