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

来源:互联网 发布:苹果5s怎么关闭网络 编辑:程序博客网 时间:2024/06/05 13:31

什么是协程(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官方案例精讲的协程章节,下载地址在这里

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 微信照片过期了怎么办 异地恋没话说了怎么办 请事假公司不批怎么办 请病假领导不批怎么办 农民被当官的整怎么办 领英人脉圈以外怎么办 收到领英的短信怎么办 狗半夜叫个不停怎么办 如果被鬼上身了怎么办 支付宝借钱不还怎么办 鞋子里鞋垫老跑怎么办 鞋垫在鞋里老串怎么办 网贷已经借不到怎么办 骨龄比实际年龄大怎么办 小孩崴脚了肿了怎么办 报到证过期2年多怎么办 报到证过了期限怎么办 报到证超过两年怎么办 报到证过期4年了怎么办 学校没发报到证怎么办 未报到证过期了怎么办 专升本的报到证怎么办 蓝色报到证丢了怎么办 报到证用过了怎么办 大学报到证丢了怎么办 qq好被冻结了怎么办啊 qq突然被冻结了怎么办 扣扣密码被冻结怎么办 蠕动泵不抽水了怎么办 失眠多梦压力大怎么办 大福的皮硬了怎么办 安卓手机root失败怎么办 你的手机已root怎么办 移动网不能看片怎么办 网站的密码忘了怎么办 拍拍贷换手机了怎么办 六个半月的宝宝发烧怎么办 5个月的小孩发烧怎么办 3个月小孩发烧怎么办 2岁宝宝感冒发烧怎么办 2岁宝宝发烧38度怎么办