(一)、StartCoroutine、StopCoroutine、StopAllCoroutines

1.StartCoroutine有两种传参方法,一种是字符串,一种是IEnumerator,传字符串的只能传一个方法参数,传IEnumerator没有限制。

2.StopCoroutine只能停止用字符串传参的协同,而用IEnumerator传参的要使用StopAllCoroutines。

3.一旦gameobject的状态是inactive,协同就失效。包括脚本依附的gameobject的父gameobject,再次active也无法唤起协同

4.组件enable状态无法暂停协同。

5.一旦跳转场景(其实就是协同所在的脚本所依附的gameobject被删除,包括脚本被删除,gameobject整个被删除),协同马上停止。

6.StopCoroutine、StopAllCoroutines只能停止相应脚本上的协同,不能停止别的脚本上的协同,例如脚本A上有协同 a,StopCoroutine、StopAllCoroutines要写在脚本A上,如果想在脚本B停止协同a,应该在脚本A上封装一个停止的方法让脚 本B调用。

(二)、Invoke、CancelInvoke

1.Invoke、InvokeRepeating是用CancelInvoke停止。

2.CancelInvoke只能停止相应脚本上的协同,与(一)中的第6点同理。

3.无论active=false,还是enable=false,无法停止Invoke,除非Invoke所在脚本或所依附的gameobject被destroy