Unity 协程(Coroutine)的原理以及用法

目录

  • 事件函数的执行顺序
  • 定义
  • 使用
    • yield instruction中的子类
  • 总结

参考链接 :Unity 5分钟基础的了解协程

事件函数的执行顺序

Unity 协程(Coroutine)的原理以及用法_第1张图片

定义

  • 定义:开启一段和主程序异步执行的逻辑
  • 异步执行:是指语句在异步执行模式下,各语句执行结束的顺序与语句执行开始的顺序并不一定相同

使用

  1. 需要用IEnumerator迭代器命名
  2. 使用yield return关键字返回
  • 执行顺序:Start --> Update --> yield return 0/null (将程序暂时挂起,在这一帧的update执行后再执行之后的代码
  1. 开启/停止 协程
    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");
    }
}

Unity 协程(Coroutine)的原理以及用法_第2张图片

yield instruction中的子类

使用时需要添加new关键字

  1. WaitForSeconds 等待对应秒数(受timescale影响)
yield return new WaitForSeconds(1);
  1. WaitForSecondsRealtime 等待对应秒数(不受timescale影响)
yield return new WaitForSecondsRealtime(1);

Unity 协程(Coroutine)的原理以及用法_第3张图片
3. WaitForFixedUpdate 在 FixedUpdate(物理运算) 所有代码执行完毕再运行后面的代码
4. WaitForEndOfFrame 在这一帧所有代码执行完(包括Update、FixedUpdate和GUI渲染)后再运行

总结

你可能感兴趣的:(Unity,unity,游戏引擎)