下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

协程函数返回值的实现方法

作者:匿名     来源: 游戏开发点击数:1678发布时间: 2021-10-19 17:50:37

标签: unity3d协作程序如何工作使用yield关键字

  本文中,小编将讨论什么是生成器,并把它与协程进行比较。但要理解这两个概念(用协程生成的生成器),小编首先需要深入了解迭代器的概念。函数最常见的用途是创建迭代器,但是它的基本特性是可以暂停计算,返回中间结果,然后在某一时刻恢复计算。也就是说生成器具有超越迭代器的特性,下面几个部分将讨论这些特性。

  协作程序如何工作?

  请注意上面的代码示例,您将发现一个协程函数的返回值,这是一个迭代器,您可以将其作为指向序列中某一节点的指针,它提供了返回当前指向的元素和将指针向前移动一个单位,如果移动成功,则返回两个重要接口,因此您不必担心具体的实现。

  一般情况下,如果要实现接口,可以编写类、实现成员等,块是一种实现的简便方法,只需遵守一些规则,并由编译器自动生成。

  迭代块具有以下特征:

  1. 返回IEnumerator

  2. 使用yield关键字

  那么它的关键词是什么呢?该函数声明序列中的下一个值或无意义值,若使用特定的对象或数值,则返回为true,而函数被赋为x,若使用则返回。

  下面我举了一个迭代器的例子:  

  
 

  协同程序如何实现延迟?

  您可以看到,返回的值不一定有意义,但我们对如何使用该返回值实现一些有趣的效果更感兴趣。

  宣布作为所有返回值的基本类别,提供一些常见的继承类别,如暂停一段时间的持续执行,并将继续执行到下一帧等。更精致的是,它也可以返回函数的真实身体,即当a自己返回b时,即在b完成后执行a。以下是详细说明: 

 

  还有更有趣的呢?

  1. 首先,可以返回任意,因此我们可以在此添加一些条件判断:  

  2. 其次,因为协程仅仅是一个迭代器块,所以您也可以通过它来完成,这在某些情况下非常有用,比如在协程是否执行条件判断时:  

  3. 因为协程可以协程,所以我们可以自己制作协程函数:  

  所以结合上面案例看出,函数体不会立即被调用,但是它会返回一个可迭代的迭代器对象。每当这个迭代器的方法被调用时,生成器函数中的代码块就会运行。

    >>>>>>点击进入游戏开发专题

赞(7)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程