Unity协同程序

1、Unity是否支持多线程

Unity是支持多线程的,只是新开的线程无法访问Unity相关对象的内容

  • Unity中的多线程要记得关闭,否则即使Unity停止运行游戏,那么线程中的函数依然会执行。这是因为Unity是一个编辑器,新开的线程和Unity是共生的状态,只要Unity没有关闭或者脚本没有改变,那么新开的线程不会停止,因此可以在OnDestroy()中通过Abort()关闭多线程。
  • 新开的线程的使用有限制,例如要访问【this.transform】是不被允许的,因此通常作为复杂算法计算的附属线程,例如实现A*寻路算法,或者进行网络消息的处理,这是基于主线程与附线程的内存是通用的。

2、协同程序是什么

简称协程,是“假”的多线程,主要作用是:将代码分时执行,不阻塞主线程(即把可能会让主线程卡顿的耗时的逻辑分时分步执行)。和线程一样,最好不要在Update中添加协程。

主要使用场景:

  • 异步加载文件
  • 异步下载文件
  • 场景异步加载
  • 批量创建时防止卡顿

3、协同程序和线程的区别

新开一个线程是独立的一个管道,和主线程并行执行;

新开一个协程是在原线程之上开启,进行逻辑分时分步执行。(可以理解为把一个函数分为几部分分时进行)

4、协程的使用

继承MonoBehavior的类,都可以开启协程函数

(1)第一步:声明协程函数

协程函数有两个关键点:

你可能感兴趣的:(Unity学习,#,Unity基础,unity,游戏引擎)