首页 > 代码库 > unity如何停止不用字符串方式开启协程的方法
unity如何停止不用字符串方式开启协程的方法
通常我们知道开启协程用StartCoroutine("Method"); 停止协程用StopCoroutine("Method");
如果我们想要终止所有的协程,可以通过StopAllCoroutines();方法来实现。
注意:这只会终止在调用该方法的对象中(应该是指调用这个方法的类)开始的协程,对于其他的MonoBehavior类中运行的协程不起作用。
但是如何单独停止用StartCoroutine(Method());开启的协程呢,资料上说:如果想要终止某一个特定的协程,那么你必须得在开始协程的时候将它的方法名作为字符串。
但是我还是不妥协,如果不能停止,为什么要提供这个方法呢,所以我琢磨出一种方法来实现。
StartCoroutine(Method());方法是有一个Coroutine类型的返回值的,我们用一个变量接收它,然后在StopCoroutine()里面把它填进去就好了。代码如下:
1 using UnityEngine; 2 using System.Collections; 3 4 public class Test : MonoBehaviour { 5 6 Coroutine coroutine; 7 8 void Start () { 9 StartCoroutine("Method"); 10 coroutine = StartCoroutine(Method()); 11 } 12 13 IEnumerator Method() { 14 yield return 0; 15 StopCoroutine(coroutine); 16 Debug.Log("已经停止协程"); 17 } 18 }
unity如何停止不用字符串方式开启协程的方法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。