美文网首页
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

相关文章

  • XLua里使用协程

    在XLua里如何使用协程?有两种方式 使用Unity协程要想通过unity的StartCoroutine使用协程,...

  • Unity 协程

    unity 里面的协程流程 开始协程 StartCoroutine("DoSomething"); 执行到 yie...

  • C#协程

    Unity中协程的执行原理 UnityGems.com给出了协程的定义: A coroutine is a fun...

  • unity协程

    今天在网上看见一个人的博客,发现对unity Coroutine有深入的了解分享一下 原文出处 unity Mo...

  • Unity3D 协程管理

    Unity里面的协程好用,但总是在如何关闭指定协程,尤其是关闭带参数的协程的问题上困惑不已。在本文,笔者带你用最简...

  • 自定义协程模块

    IFramework所有模块总目录 简介 协程在unity中很常见,IF中也有自己的协程。其本质就是通过:yiel...

  • Unity3d-仿写简单dotween C#扩展方法协程单例工厂

    dotween官网 先验知识:Unity3d-Coroutines协程 Unity3d-C#扩展方法 dotwee...

  • Unity之协程

    协程,又称微线程,纤程。英文名Coroutine。子程序,或者称为函数,在所有语言中都是层级调用,比如A调用B,B...

  • Unity协程(Coroutine)

    协程与线程的区别 1、协程不是线程,也不是异步执行的。2、协程和 MonoBehaviour 的 Update函数...

  • Unity的协程

    这篇文章转自:http://blog.csdn.net/huang9012/article/details/384...

网友评论

      本文标题:Unity 协程

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