美文网首页
UntiyC#编程:Coroutine协同程序

UntiyC#编程:Coroutine协同程序

作者: hanabusters | 来源:发表于2016-09-15 16:34 被阅读0次

1.从需求出发

延时是游戏编程中最常见的需求之一,角色的移动控制需要延时,事件触发需要延时。有鉴于此,很多的游戏引起都会对延时控制提供了很好的支持,但从实现的层面来讲,基本都是“标记开始时间,在Update中持续更新检查”的方法,代码上实现,如下图所示:

实现延迟的方法

但这个方法并不是最佳的方法,在Untiy中,我们用于实现延时最好的方法是使用Coroutine,也就是协同函数。

2.Coroutine的使用

如果我们按照Untiy中Coroutine函数的实现方法去实现如上图Update内的函数,大致如下图所示:

Coroutine函数实现延迟

你需要的就是声明一个返回值为IEnumrator的方法,然后在方法中使用yield return语法去返回一个 WaitForSenconds()的实例(返回值有很多,你也可以返回null),然后在需要用的时候 (如例子中在Start()方法中调用)通过StartCorutine(协程函数的方法名)去调用,从而实现延迟的功能。当然,能通过StartCoroutine方法去调用协程函数,那么也存在StopCoroutine(“协程函数的方法名”)去关闭协程。


相关文章

  • UntiyC#编程:Coroutine协同程序

    1.从需求出发 延时是游戏编程中最常见的需求之一,角色的移动控制需要延时,事件触发需要延时。有鉴于此,很多的游戏引...

  • Lua语言入门(三)

    协同程序 36、协同程序(coroutine)4种状态:挂起(suspended)、运行(running)、死亡(...

  • Lua 协同程序(coroutine)

    什么是协同(coroutine)? Lua 协同程序(coroutine)与线程比较类似:拥有独立的堆栈,独立的局...

  • lua协程

    Lua中协同程序:意义和Unity中一样Lua中协同程序的函数被放在coroutine的表中协同程序状态:挂起、执...

  • Lua 协同程序(coroutine)与文件流操作

    一、协同程序 Lua 协同程序(coroutine)与线程比较类似:拥有独立的堆栈,独立的局部变量,独立的指令指针...

  • 3. Lua coroutine(table)协同程序

    协同程序所有函数都放在coroutine的table中的。 1. create函数: thread = corou...

  • Unity3D 中的协同程序Coroutine

    今天咱就说说协同程序coroutine。 什么是协同程序 先说说啥是协程:它的表现形式非常像线程,对线程有过接触的...

  • lua 协同程序(coroutine)

    基本语法 注:在任一指定时刻只有一个协同程序在运行 定义一个协同程序 定义 coroutine (方法一:使用 ...

  • (技术)Python 3 -- 异步IO: asyncio

    先上代码 Coroutine 翻译一下:协同程序 ,简意为协程,又称微线程 @asyncio.coroutin...

  • [其他] 初学协程

    1. 什么是协程 协程是协同程序(Coroutine)的简称(co前缀表示合作,routine即为程序)。具体来说...

网友评论

      本文标题:UntiyC#编程:Coroutine协同程序

      本文链接:https://www.haomeiwen.com/subject/gwebettx.html