Advertisement

通过Unity实现协作程序

阅读量:

1、Unity是否支持多线程

Unity具备多线程支持功能,但新创建的线程无法对Unity相关对象进行访问操作。

  • 在Unity中使用多线程时,务必记得进行关闭处理,否则即便Unity停止运行游戏,新开的线程中的函数仍将继续执行。 原因在于Unity本质上是一个编辑器环境,新开启的线程与Unity之间存在共生关系。只要Unity未被关闭或脚本未发生变更,新开的线程将不会自动终止。因此,在OnDestroy()方法中可通过调用Abort()函数实现对多线程的强制关闭。
  • 新建线程在使用过程中存在一定的限制条件,例如无法直接访问【this.transform

2、协同程序是什么

【协程,通常被称作伪多线程,其核心功能在于:实现代码的分时运行,避免主线程出现阻塞现象(即将可能造成主线程停滞的耗时操作进行分阶段、分时段执行)。与线程类似,不建议在Update函数中引入协程。

典型的应用情境包括:

  • 文件的异步读取
  • 网络文件的非同步下载
  • 场景资源的非同步加载
  • 批量生成过程中防止界面卡顿

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

启动一个新的线程相当于创建了一个独立的管道,该管道能够与主线程同时运行;

而启动一个新的协程则是在原有线程的基础上进行操作,通过时间片的方式对逻辑进行分步执行。(可以将其视为将一个

全部评论 (0)

还没有任何评论哟~