Unity 协同程序coroutine简单使用

Posted kingr

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity 协同程序coroutine简单使用相关的知识,希望对你有一定的参考价值。

简介

协同程序 coroutine 简称协程,

Unity的Update函数每帧调用一次,若想实现跨帧执行程序,这时需要使用协程

 

使用

声明返回值类型为IEnumerator的方法

1 IEnumerator MyFunction()
2 {
3   //Code1
4   yeild return null;
5   //Code2             
6 }

协程的执行可在任何时候用yield return null语句暂停。当时用yield语句时,协程暂时停止执行,并在下一帧于原位恢复。

yeild return后可接 new WaitForSeconds(n) 表示协程在n秒后恢复(n为浮点数).

 

协程的开始和结束

StartCoroutine(参数); //开始
StopCoroutine(参数);//结束

参数: 返回值为IEnumerator的方法,或者是方法名称的字符串。

其他结束方法:禁用GameObject对象会中断协程(但是禁用脚本组件不会中断).

 

用途

Buff,持续跳动伤害,触发延迟效果,一些视觉效果的延迟消失(激光,物体淡出);

可在方法体中通过循环来实现一些不必每帧都调用的周期性作业(通过WaitForSeconds(n)实现),减轻每帧的运算量。

以上是关于Unity 协同程序coroutine简单使用的主要内容,如果未能解决你的问题,请参考以下文章

Lua 协同程序(coroutine)

Lua之协同程序(coroutine)

雷林鹏分享:Lua 协同程序(coroutine)

Lua中的协同程序 coroutine(转)

Unity3D/C#Unity3D中的Coroutine详解

Unity3D中的Coroutine具体解释