答案是:
当你使用StopCoroutine终止这个协程后,之前调用的协程也会一起被终止,而不会继续执行下面的部分。
public class CortTest : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
StartCoroutine("Test");
StartCoroutine("StopLoop");
}
IEnumerator Test()
{
Debug.Log("协程开始");
yield return StartCoroutine("Loop");
Debug.Log("协程结束");
}
IEnumerator Loop()
{
while (true)
{
Debug.Log("协程运行");
yield return 0;
}
}
IEnumerator StopLoop()
{
yield return new WaitForSeconds(5);
StopCoroutine("Loop");
Debug.Log("开始结束");
}
}
运行上方代码,可以发现,“协程结束”并不会出现在控制台中