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 }
複製代碼
相關文章
相關標籤/搜索