Unity 之 协程 初级

协程可以通过StartCoroutine()来调用

只需要在里面穿进去一个IEnumerator类型的方法 就可以了。这个方法是可以带有参数的哦。

举个例子

IEnumerator Test2()
        {
            Debug.Log("Test211111111111111111111111111111111111");
            yield return null;
        }


void Start () 
        {
            StartCoroutine(Test2());
		}

这样就在一开始调用这个Test2的方法了

现在我来着重讲讲最让人烦心的yield return这个东西

yield return 这里我是返回的Null,这个代表这个协程在这里跳出,在下一帧的时候再次从这里开始执行代码,也就是后面的空语句。

Test2()这个方法体中的所有程序语句全部按顺序执行完毕后,这个协程就做完了。

但是这个方法是可以通过循环语句重复调用,使协程永远不会结束。

        IEnumerator test()
        {
            while (true)
            {
                Debug.Log("Test1"+Time.time);
                yield return null;
            }
        }

回到yield return上来

yield return null:

yield return new WaitForSeconds(): 调用Unity自带的方法,等待多少秒后继续执行后面代码

yield return test():  调用自己的协程方法

yield return 0:同null

yield return 1:同null

yield return 100:也同null  , 也就是说 后面的数字不管多少,都是同null

yield break:协程直接从此处终止

return null:别用会报空指针。

刚才讲了IEnumerator 自制函数,并且这个自制函数是可以传入参数的,我们就在想,可不可以传入一个IEnumerator的参数来在这个自制函数里执行另一个函数,结果是不行。

更多详细的知识请参考:https://blog.csdn.net/tom_221x/article/details/78546037

猜你喜欢

转载自blog.csdn.net/qq_14812585/article/details/82901161