一般咱們知道開啓協程用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 }