在Unity的学习中,协程(Coroutines)是一个很好用也经常会用到的方法。这里给大家分享一下我自己在学习过程中的所得。
首先我们看一下Unity官方手册的对协程的介绍:

官方手册在这里举了一个例子:(原文)当你调用一个方法(函数)的时候,方法在返回之前就全部执行完成了,这就意味着任何函数内的方法,在一帧之内就执行完成了。所以这些函数没有办法完成一些,包含动画和一些时间事件的函数。例如减少一个物体的alpha值,直到透明。
效果如下:
public class Coroutines_Blog : MonoBehaviour
{
private Image test_Img;
private void Start()
{
test_Img = transform.Find("test_Img").GetComponent<Image>();
Fade();
}
void Fade()
{
for (float f = 1f; f >= 0; f -= 0.1f)
{
Color c = test_Img.color;
c.a = f;
test_Img.color = c;
}
}
}

在编辑器模式下,我在程序开始的第一帧就暂停了,而Fade方法也在第一帧内就全部执行完毕了。这样显然是没有达到我们想要的效果的。所以协程就出场了,先看Unity手册是怎么介绍的:

本文分享了Unity中协程Coroutine的理解与应用,通过实例解释了协程如何按帧执行,yield return语句的作用,以及协程与线程的区别。通过示例代码,展示了协程的启动方式和与线程的类比,帮助理解协程如何在单线程环境下模拟并发执行的效果。
最低0.47元/天 解锁文章
226

被折叠的 条评论
为什么被折叠?



