曾被问道 Unity 协程是如何知道条件是否满足的。
直到看了一个讲师的视频后才明白一些。
IEnumerator 迭代器是一个容器,可以装一个一个的函数,
依次执行每个函数(即:MoveNext()),每个函数会有一个返回值,
返回值会保存在 IEnumerator.Current对象里。
yield return null;
yield 是单独存在的,yield是yield,return null是return null。 yield做了什么事情呢?
yield把它之前的代码 “Debug.Log("111111111");”和 “return 1;”做成一个函数放到IEnumerator容器中
然后在更新函数里每帧判断是否满足条件,满足就开始执行下一个函数。
由于对C#语言还做不到深入的理解,迭代器到底咋回事不清楚,所以讲师讲到的明白,其它的条件还是不会实现。
以下是测试代码:
public class CoroutineTest : MonoBehaviour
{
IEnumerator e = null;
//IEnumerator 迭代器是一个容器,可以装一个一个的函数,
//依次执行每个函数,每个函数会有一个返回值,
//返回值会保存在 IEnumerator.Current对象里。
//yield return null;
//