Unity 学习笔记(三)——协程操作详解

协程的两种开启方式

1.StartCoroutine(DoSomething());

2.StartCoroutine(“DoSomething”);

协程关闭

1.StopCoroutine(DoSomething()); //关闭指定协程

2.StopAllCoroutines(); //关闭所有协程

    void Start()
    {
        StartCoroutine(DoSomething());//开启协程的第一种方法

        StartCoroutine("DoSomething");//开启协程的第二种方法
    }

    IEnumerator DoSomething() {
        Debug.Log("DoSomething");
        yield return null;
    }

协程的返回值

协程必须有有返回值,且返回值类型为IEnumrator。返回值语句为yield retuen 表达式或值 或 yield break。
yield:挂起,程序遇到yield关键字时会被挂起,暂停执行,等待条件满足时从当前位置继续执行
yield return 0 or yield return null: 程序在下一帧中从当前位置继续执行
yield return 1,2,3,…: 程序等待1,2,3…帧之后从当前位置继续执行
yield return new WaitForSeconds(float n): 程序等待n秒后从当前位置继续执行
yield return WWW: 等待一个网络请求完成后从当前位置继续执行
yield return StartCoroutine(): 等待一个协程执行完成后从当前位置继续执行
yield new WaitForEndOfFrame(): 在所有的渲染以及GUI程序执行完成后从当前位置继续执行
yield new WaitForFixedUpdate(): 所有脚本中的FixedUpdate()函数都被执行后从当前位置继续执行
yield break:协程执行条件不满足,即不会从当前的位置继续执行协程,将回到函数继续执行。

协程的一些注意地方:
1.多个协程可以同时运行,它们会根据各自的启动顺序来更新;
2.协程可以嵌套任意多层;
3.如果你想让多个脚本访问一个协程,那么你可以定义静态的协程;
4.如果你的程序需要进行大量的计算,那么可以考虑在一个随时间进行的协程中处理它们;
5.IEnumerator类型的方法不能带ref或者out型的参数,但可以带被传递的引用;
6.目前在Unity中不能检测作用于对象的协程数量以及具体是哪些协程作用在对象上。

参考:添加链接描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值