Coroutin Yield 停止继续执行

版权声明:[email protected] https://blog.csdn.net/cmdszh/article/details/83184223

想要中途退出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());
	}
}

mg

猜你喜欢

转载自blog.csdn.net/cmdszh/article/details/83184223