
2、协程和 MonoBehaviour 的 Update函数一样,也是在MainThread中执行的。
3、使用协程你不用考虑同步和锁的问题。
4、协程可以被yield return在当前帧进行打断,到下一帧后可以继续从被打断的地方继续运行。
5、协程是每帧的LateUpdate()后去运行的。
1、一个Collection要支持蠢磨链foreach方式的遍历,必须实现IEnumerable接口(亦即,必须以某种方式返回IEnumerator object)。
2、IEnumerator object具体实现了iterator(通过MoveNext(),Reset(),Current)。
3、从这两个接口的用词选择上,也可以看出其不同:IEnumerable是一个声明式的接口,声明实现该接口的class是“可枚举(enumerable)”的,但并没有说明如何实现枚举器(iterator);IEnumerator是一个实现式的接口,IEnumerator object就是一个iterator。
4、IEnumerable和IEnumerator通过IEnumerable的GetEnumerator()方法建立了连接,client可以通过IEnumerable的GetEnumerator()得到IEnumerator object,在这个意义上,将GetEnumerator()看作IEnumerator object的factory method也未尝不可。
1、在带孙程序中调用StopCoroutine()方法只能终止以字符串形式启动(开始)的协程
2、多个协程可以同时运行,它们会根据各自的启动顺序来更新
3、协程可以嵌套任意多层
4、如果你想让多个脚本访问一个协程,那么你可以定义静态的协程
5、协程不是多线程(尽管它们看上去是这样的),它们运行在同一线程中,跟普通的脚本一样
6、如果你的程序需要进行大量的计算,那么可以考虑在一个随时间进行的协程中处理它们
7、IEnumerator类型的方法不能带ref或者out型的参数,但可以带被传递的引用
8、目前在Unity中没有简游雹便的方法来检测作用于对象的协程数量以及具体是哪些协程作用在对象上
在Unity中使用协程函数时,有时候即使协程函数本身没有错误,也会报余轮错,这可能是因为以下原因之一:1. 协程函数的调用方式不正确。在Unity中,协程函数必须使用StartCoroutine函数来启动,如果没有使用该函数,就会出现错误。例如,如果直接调用协程函数MyCoroutine(),而没有使用StartCoroutine(MyCoroutine())来启动,就会报错。
2. 协程函数的返回值类型不正确。在Unity中,协程函数必须返回IEnumerator类型,否则就会出现错误。如果协程函数返回值类型不正确,就会报错。
3. 协程函数中使用了Unity不支持的API或 *** 作。清余在协程函数中,如果使用了Unity不支持的API或 *** 作,就会出现错误。例如,在协程函数中尝试修改Transform组件的值,就会报错。
4. 协程函数中使用了不安全的 *** 作。在协程函数中,如果使用了不安全的 *** 作,就会出现错误。例如,在协程函数中使用了线程或异步 *** 作,就会报错。
如果您遇到了协程函数报错的问题,可以根据上述原因进行竖正信排查,并尝试修复问题。如果无法解决问题,可以将具体的错误信息提供给Unity的技术支持人员,以获得更详细的帮助。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)