版本:Unity 6 (6000.0)
语言英语
  • C#

协程

UnityEngine 中的类

/

继承自:YieldInstruction

/

实现于:UnityEngine.CoreModule

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交内容,但我们确实会阅读用户提出的每项更改建议,并在适用情况下进行更新。

关闭

提交失败

由于某种原因,您的建议更改无法提交。请 <a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

描述

MonoBehaviour.StartCoroutine 返回一个协程。此类实例仅用于引用这些协程,并且不包含任何公开的属性或函数。

协程是一个可以暂停其执行(yield)直到给定的 YieldInstruction 完成的函数。

using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour { IEnumerator WaitAndPrint() { // suspend execution for 5 seconds yield return new WaitForSeconds(5); print("WaitAndPrint " + Time.time); }

IEnumerator Start() { print("Starting " + Time.time);

// Start function WaitAndPrint as a coroutine yield return StartCoroutine("WaitAndPrint"); print("Done " + Time.time); } }

此示例显示了正常的 Start

using UnityEngine;
using System.Collections;

// In this example we show how to invoke a coroutine and execute // the function in parallel. Start does not need IEnumerator.

public class ExampleClass : MonoBehaviour { private IEnumerator coroutine;

void Start() { // - After 0 seconds, prints "Starting 0.0 seconds" // - After 0 seconds, prints "Coroutine started" // - After 2 seconds, prints "Coroutine ended: 2.0 seconds" print("Starting " + Time.time + " seconds");

// Start function WaitAndPrint as a coroutine.

coroutine = WaitAndPrint(2.0f); StartCoroutine(coroutine);

print("Coroutine started"); }

private IEnumerator WaitAndPrint(float waitTime) { yield return new WaitForSeconds(waitTime); print("Coroutine ended: " + Time.time + " seconds"); } }

继承的成员