Unity笔记—8(Unity常用API整理之协程)

8 篇文章 0 订阅
7 篇文章 1 订阅

Unity笔记—8(Unity常用API整理之协程)



前言

自学笔记,没有历史知识铺垫(省略百度部分),系列性的记录核心的实用笔记,本章主要记录Unity常用API协程相关内容


一、MonoBehaviour.StartCoroutine(内置开启协程方法)(核心)

启动/关闭协程的方法

方法名操作协程
开启协程:StartCoroutine(string methodName); //方法名开启协程
关闭协程:StopCoroutine(“协程方法名“);

方法名+参数操作协程
开启协程 StartCoroutine(string methodName, [DefaultValue(“null”)] object value)//方法名开启协程,参> 数开启协程,该方法只适用于协程只有一个参数的时候
关闭协程 StopCoroutine(“协程方法名”);

方法操作协程
开启协程 StartCoroutine(IEnumerator routine);//方法开启协程,可传递多个参数
关闭协程 StopCoroutine(IEnumerator routine);//关闭第一个该方法的协程,关闭不实用

public Coroutine StartCoroutine_Auto(IEnumerator routine); //(已被废弃)

注意

  1. 协程方法通常实用IE开头作为规范,用于区分普通方法
  2. 协程必须有有返回值,且返回值类型为IEnumrator。返回值语句为yield retuen 表达式或值 或 yield break
  3. yield:挂起,程序遇到yield关键字时会被挂起,暂停执行,等待条件满足时从当前位置继续执行
  4. 如果yield返回的对象结果为false则协程停止向下运行
  5. 如果yield返回的对象结果为true则协程继续向下运行
//yield常用方法如下
yield return null; //下一帧继续执行
yield return 任意数字; //下一帧继续执行
yield break; //直接结束,不执行后续代码
yield return WWW();//等待WWW操作完成后再执行后续代码
yield return new WaitForEndOfFrame();//等待帧结束,等待直到所有的摄像机和GUI被渲染完成后,在该帧显示在屏幕之前执行
yield return new WaitForSeconds(2.2f);//延迟2.2秒后向下执行,在所有的Update函数完成调用的那一帧之后(受到Time.timeScale的影响)
yield return new WaitForSecondsRealtime(2.2f);//延迟2.2秒后向下执行,一段指定的时间延迟之后继续执行,在所有的Update函数完成调用的那一帧之后(不受到Time.timeScale的影响)
yield return WaitForFixedUpdate();//等待下一次FixedUpdate开始时再执行后续代码
yield return new WaitUntil(Func<bool>);//自定义Func<bool>委托作为WaitUntil参数,yield的返回标志,实际bool相应调用MoveNext,如果true则向下执行,如果false则停止执行
yield return new WaitWhile(Func<bool>)//自定义Func<bool>委托作为WaitWhile参数,如果委托返回true则一直循环执行,如果委托返回false则结束循环并向下执行
yield return StartCoroution(指定协程方法名);//执行指定协程方法并等待指定协程方法运行结束后运行
yield return asyncOperation;//异步操作结束后执行,如用于异步载入场景

协程异步yield操作场景
Unity3D研究院之异步加载游戏场景与异步加载游戏资源进度条(三十一)

二、IEnumerator协程方法返回标志(协程结果)

协程中方法必须的返回标志,实际上是维护协程的迭代器

Current属性

当前元素

MoveNext方法

返回true/false,协程本质并不是真的多线程,主线程每次update时都会更新一下这个实力,查看是否有下一个节点,如果有则返回true并将下一个节点赋值给Current属性

Reset方法

协程暂无使用


三、实用场景如

  1. 多资源加载
  2. 场景切换
  3. 血量缓慢下降
  4. 分数增长
  5. 倒计时
  6. 动作附加特效
  7. 积分提醒
  8. 经验提醒

干货贴
Unity3D协程介绍 以及 使用

总结

Unity协程的笔记,大概了解Unity协程的运作原理以及常用的方法,总结可以在coding中使用的场景等

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值