unity 3D c# 协程的典型用法-Unity官方案例精讲笔记

什么是协程(Coroutine)

在unity中,协程的概念类似于线程,它是一种特殊的函数,能够中断(通过yield语句)执行当前的代码,直到中断指令(YieldInstruction)结束后再接着执行之前的代码。

典型用法

这里写图片描述

注意事项

  1. 协程的返回值必须是IEnunmerator
  2. 协程的参数不能加ref或out
  3. 在c#脚本中,必须通过StartCoroutine来驱动协程
  4. yield语句要用yield return 来代替
  5. StartCoroutine只能在monoBehaviour或其子类中使用
  6. StartCoroutine接收协程的名称(字符串)或IEnumerator实例作为参数
  7. 在Unity中,可以使用函数StopCoroutine来终止一个协程,但这种方法只适用于使用协程的名称作为参数启动的协程。使用StopAllCoroutine可以终止该monoBehaviour中的所有协程。还有一个不常用的方法来终止协程,即将协程所在的游戏对象的active属性设置为false,但是当再次将active改为TRUE时,协程不会自动启动。
  8. yield return 语句不能用在try-catch语句块中,但可以用在try-finally中的try语句块中
  9. yield return语句不能放在匿名方法中
  10. yield return语句不能放在unsafe语句块中

示例代码

 IEnumerator WaitAndPrint()
    {
        yield return new WaitForSeconds(1);//WaitForSeconds()受Time.timeScale影响,当Time.timeScale为0时,yield return new WaitForSeconds(n) 将失效
        print("WaitAndPrint");
    }
 IEnumerator Download()
    {
        string url = "http://download.csdn.net/detail/sakurallj/9926053";
        WWW w =new WWW(url);
        yield return w;
        if (w!=null)
        {
            Debug.Log(w.text);
        }
        StopAllCoroutines();
    }

参考
Unity官方案例精讲的协程章节,下载地址在这里

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值