unity如何中止不用字符串方式开启协程的方法

一般咱们知道开启协程用StartCoroutine("Method"); 中止协程用StopCoroutine("Method");spa

若是咱们想要终止全部的协程,能够经过StopAllCoroutines();方法来实现。code

注意:这只会终止在调用该方法的对象中(应该是指调用这个方法的类)开始的协程,对于其余的MonoBehavior类中运行的协程不起做用。协程

可是如何单独中止用StartCoroutine(Method());开启的协程呢,资料上说:若是想要终止某一个特定的协程,那么你必须得在开始协程的时候将它的方法名做为字符串。对象

可是我仍是不妥协,若是不能中止,为何要提供这个方法呢,因此我琢磨出一种方法来实现。blog

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  { 10 coroutine = StartCoroutine(Method()); 11  } 12 13  IEnumerator Method() 14  { 15  StopCoroutine(coroutine); 16 Debug.Log("已经中止协程"); 17 yield return 0; 18  } 19 }
复制代码
相关文章
相关标签/搜索