想要中途退出Coroutine 使用 Yield break.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
public class CoroutineYieldTest : MonoBehaviour {
// Use this for initialization
void Start () {
StartCoroutine("stepsTest");
}
IEnumerator stepsTest()
{
yield return StartCoroutine("Test1");
yield return StartCoroutine("Test2");
}
IEnumerator Test1 () {
Debug.LogError("T1_0 "+DateTime.Now.ToString());
yield return 1;
Debug.LogError("T1_1 "+DateTime.Now.ToString());
yield return 0;
Debug.LogError("T1_2 "+DateTime.Now.ToString());
yield return true;
Debug.LogError("T1_3 "+DateTime.Now.ToString());
yield return false;
Debug.LogError("T1_4 "+DateTime.Now.ToString());
yield break;
Debug.LogError("T1_5 "+DateTime.Now.ToString());
}
IEnumerator Test2 () {
Debug.LogError("T2_0 "+DateTime.Now.ToString());
yield return 1;
Debug.LogError("T2_1 "+DateTime.Now.ToString());
yield return 0;
Debug.LogError("T3_2 "+DateTime.Now.ToString());
yield return true;
Debug.LogError("T4_3 "+DateTime.Now.ToString());
yield return false;
Debug.LogError("T5_4 "+DateTime.Now.ToString());
yield return null;
Debug.LogError("T6_5 "+DateTime.Now.ToString());
}
}

本文通过示例代码详细介绍了如何在Unity中使用Coroutine进行异步操作,并演示了如何利用YieldBreak中途退出Coroutine,避免不必要的资源消耗。通过观察不同Yield指令的行为,深入理解Coroutine的工作机制。
2775

被折叠的 条评论
为什么被折叠?



