StopCoroutine的使用
根据官方文档的解释:
MonoBehaviour.StopCoroutine
使用StopCoroutine时,有两种用法:
public void StopCoroutine(string methodName);前者是使用方法名字符串,后者是使用方法的引用。
public void StopCoroutine(IEnumerator routine);
前者可以停止第一个名字为methodName的协程;后者可以准确地停止你引用的那个协程。
常犯的错误是:并没有将协程方法赋给一个引用,如下例:
using System.Collections;
using UnityEngine;
public class TestStopCoroutine : MonoBehaviour
{
// Use this for initialization
IEnumerator Start ()
{//错误示例:并不能停止DoSomething
StartCoroutine(DoSomething());
yield return new WaitForSeconds(2f);
StopCoroutine(DoSomething());
}
//一个协程,不停打印一句话
IEnumerator DoSomething()
{
while (true) {
print("Do Something Loop forever");
yield return null;
}
}
}
错误在于StartCoroutine和StopCoroutine操作的并不是同一个协程。
正确的使用方法如下:
(1)第一种
StartCoroutine("DoSomething");
yield return new WaitForSeconds(2f);
StopCoroutine("DoSomething");
【StopCoroutine的使用】(2)第二种
IEnumerator dosomething = DoSomething();
StartCoroutine(dosomething);
yield return new WaitForSeconds(2f);
StopCoroutine(dosomething);
推荐阅读
- 热闹中的孤独
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- 放屁有这三个特征的,请注意啦!这说明你的身体毒素太多
- 一个人的旅行,三亚
- 布丽吉特,人生绝对的赢家
- 慢慢的美丽
- 尽力
- 一个小故事,我的思考。
- 家乡的那条小河
- 《真与假的困惑》???|《真与假的困惑》??? ——致良知是一种伟大的力量