当在协程内部停止自身后,后面的代码块还会继续执行,直到遇到yield语句才会终止。
经测试:停止协程,意味着就是停止yield,所以在停止协程后,yield之后的语句也就不会执行了。
代码如下:
1 using UnityEngine; 2 using System.Collections; 3 4 public class Test : MonoBehaviour { 5 6 void Start () { 7 StartCoroutine("Method"); 8 } 9 10 IEnumerator Method() { 11 StopCoroutine("Method"); 12 Debug.Log("协程停止"); 13 yield return 0; 14 Debug.Log("协程yield之后的代码"); 15 } 16 }
执行结果如下: