发现一个小坑的地方,unity的协程,想要停止,必须以字符串启动

今天想要停止一个协成,发现调用 StopCoroutine(ShowDebug()); 竟然不管用,后来看了文档才知道,原来想要停止协成,必须用字符启动协程 StartCoroutine("ShowDebug"); 

然后再调用         StopCoroutine("ShowDebug");  

IEnumerator ShowDebug()
{
Debug.LogError("执行一次1");
yield return new WaitForSeconds(1f);
Debug.LogError("执行一次2");
yield return new WaitForSeconds(1f);
Debug.LogError("执行一次3");
yield return new WaitForSeconds(1f);
Debug.LogError("执行一次4");
yield return new WaitForSeconds(1f);
Debug.LogError("执行一次5");
yield return new WaitForSeconds(1f);
Debug.LogError("执行一次6");
yield return new WaitForSeconds(1f);
Debug.LogError("执行一次7");
yield return new WaitForSeconds(1f);
Debug.LogError("执行一次8");
yield return new WaitForSeconds(1f);
Debug.LogError("执行一次9");
yield return new WaitForSeconds(1f);
Debug.LogError("执行一次10");
yield return new WaitForSeconds(1f);
Debug.LogError("执行一次11");
yield return new WaitForSeconds(1f);
}

如果不用字符串的话,会发现,他一直在打印,如果用了字符串就会发现,成功停止了

原文地址:https://www.cnblogs.com/lzy575566/p/7883777.html