genice26 发表于 2015-2-11 17:27

unity中Coroutines与Invoke

今天在蛮牛教育群里请教了一下大神关于协程的一些知识,拿来给大家分享(一)、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、CancelInvoke1.Invoke、InvokeRepeating是用CancelInvoke停止。2.CancelInvoke只能停止相应脚本上的协同,与(一)中的第6点同理。3.无论active=false,还是enable=false,无法停止Invoke,除非Invoke所在脚本或所依附的gameobject被destroy。

cyxzb116 发表于 2015-3-11 23:14

学习学习 ,学习学习 ,

石头命运 发表于 2017-5-14 20:03

楼主是超人

422391958 发表于 2017-5-14 19:51

好帖就是要顶

石头命运 发表于 2017-5-14 19:10

真心顶

Stories 发表于 2017-5-14 19:16

难得一见的好帖

pudn010 发表于 2017-5-14 19:30

不错不错

00123 发表于 2017-6-12 14:09

楼主是超人

chenshiran13 发表于 2017-6-12 14:53

真心顶

vvvnnn2009 发表于 2017-6-12 14:11

难得一见的好帖
页: [1]
查看完整版本: unity中Coroutines与Invoke