最近在項目開發的時候發現,調用StopCoroutine()來終止一個正在運行的協程的時候,無法終止協程。然后通過查資料發現了一下兩種辦法:
利用字符串來啟動和終止協程:
比如,我有一個協程IEnumerator MoveAnimation(),啟動時要用StartCoroutine("MoveAnimation"),終止的時候用StopCoroutine("MoveAnimation"),才能正確終止協程。
要想傳參,可以使用 StartCoroutine("MoveAnimation", object)來傳參。
不用字符串來啟動和終止協程的方法:
定義一個Coroutine類型的變量coroutine,在StartCoroutine(MoveAnimation())后接收返回的值:
coroutine=StartCoroutine("MoveAnimation");
然后終止協程的時候利用StopCoroutine(coroutine)
