那么在这一期,我们来讨论一下如何编写一个协程。如果你不知道什么是协程,或者你还没有遇到过,那你可以直接跳过这一集。等你遇到了协程再来观看。
在这里,我找到一个协程,或者说通过这个游戏的重构,通过这个 PK 类里面还有一个协程在这个 load sense 有跳转场景的时候,它会进行一个过渡。通过协程来等待一段时间,然后在场景之间进行一个过渡。今天就以它为例来说明一下如何编写这个 pass,或者写一个这个标签,如何写一个后置固定。需要注意的是不要写前置定。
这个线程是比较特殊的。名字应该放在哪里?然后,这个返回值,这里就是我们原先写的这个后置补丁的话,返回值通常是不返回,但是协程不一样。对于协程,我们需要一个 ie emt。如果你写出来之后它出现错误提示,那你需要注意一点,就是它需要一个命名空间。比如说,写出来之后,需要首先定义一个,看它的错误提示需要 u 型这个命名空间。这点一定要注意,确保将其名称补全。在参数的地方也要传入一个 ie number。
当然,这个也不是必须的,取决于你是否需要使用它这个原方法。需要注意的是,它不带两个下划线,是不带下划线的。
然后你会看到它仍然会出现错误提示,因为我们并没有返回任何东西。如果我们直接返回这个参数的话,就相当于执行了它原本的方法,然后再返回这个值。这种写法就相当于之前提到的前置操作。举个例子,如果我们想在调用之后再输出一些内容,就是这个流程是怎样的。比如当游戏开始调用这个写好的代码时,首先会输出一个“一”,然后运行整个一段代码,最后输出一个“二”。这就是整个流程。
如果你想要修改方法,比如我不想要这个了,我自己写全都不要了,那只要不返回这个参数就好了,你可以返回自己需要的内容。即使你使用了 return 等待三秒这样的写法,它在执行时会先输出一个“一”,然后等待三秒输出一个“二”,这里面的其他部分都不会执行,这就相当于进行了一个复写。当然,一般情况下我们还是需要返回值,除非想要完全覆盖掉。
接下来,我们在这个过程中再输出一些内容,我们想要的效果是在执行前先输出一个“一”,然后等三秒输出一个“二”,然后再执行它原本的函数,最后输出一个“三”。我们去游戏里看一下。
我们现在开始游戏。首先输出一个“一”,然后在下面输出了一个“二”,然后进行了一个过渡,最后输出了一个“三”。这就是一个协程的 pass。
关于协程的 pass,更多的信息可以参考这个编号为 x 的文档,其中有更多的说明。我就不再详细解释了。那么本期的教程就到这里。