美文网首页
Unity 协程

Unity 协程

作者: cwxyz | 来源:发表于2017-06-24 21:49 被阅读53次

    unity 里面的协程流程

    1. 开始协程 StartCoroutine("DoSomething");
    2. 执行到 yield return 时,执行 ruturn后面的语句
    3. 之后就结束了,然后下一帧时继续执行
    4. 下一帧的时候从 yield return 的下一句语句继续执行

    这样就把一个死循环也在一个函数里,然后使用协程来处理。例如程序需要一直监视某个变量是否发生变化。就可以用协程来实现。

    如果把协程里死循环里面的语句放在 Update() 函数里,那么所呈现的效果基本是一样的。

    例子:

    using UnityEngine;
    using System.Collections;
    
    public class ExampleClass : MonoBehaviour
    {
        private IEnumerator coroutine;
    
        void Start()
        {
            // 打印顺序
            // 0 秒过后,打印“Starting 0.0”
            // 0 秒过后,打印“Before WaitAndPrint Finishes 0.0”
            // 2 秒过后,打印“WaitAndPrint 2.0”
            // 之后每过 2 秒,都会打印一次“WaitAndPrint  + Time.time”
            print("Starting " + Time.time);
            
            coroutine = WaitAndPrint(2.0f);
            StartCoroutine(coroutine);
    
            print("Before WaitAndPrint Finishes " + Time.time);
        }
    
        // 每两秒执行一次打印语句
        private IEnumerator WaitAndPrint(float waitTime)
        {
            while (true)
            {
                yield return new WaitForSeconds(waitTime);
                print("WaitAndPrint " + Time.time);
            }
        }
    }
    

    Unity 协程 API

    相关文章

      网友评论

          本文标题:Unity 协程

          本文链接:https://www.haomeiwen.com/subject/uhihfxtx.html