asynchronous - 如何在 Unity3D 中执行异步任务?

标签 asynchronous unity3d

有没有人知道统一执行异步任务的任何方式。我正在寻找一段时间,但找不到任何方法。
我正在尝试做一个着色游戏,有一个需要一些时间来处理的洪水填充算法。
谢谢你的帮助。

最佳答案

您可以在 Unity 中使用线程来执行异步任务。通常你运行分离的线程(从 Unity UI)来执行长时间运行的进程并检查结果(你不能从工作线程与 Unity 交互)。
常见的方法是使用一个表示线程作业的类,该作业将由 Unity 主线程初始化。然后你在那个类的函数上启动一个工作线程,让它完成它的工作(协程在 Unity 主线程上运行,所以不是真正的线程。关于协程的最佳文章是 here)

这是上述方法的示例(请参阅已接受的答案):

http://answers.unity3d.com/questions/357033/unity3d-and-c-coroutines-vs-threading.html

您可能还想尝试一个 UnityGems 包,它可以实现相同的效果但提供便利(例如闭包支持):

http://unitygems.com/threads/

哈。
最好的事物!

关于asynchronous - 如何在 Unity3D 中执行异步任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21261939/

相关文章:

c# - 在 Unity 编辑器中使用 AddComponent 脚本撤消移除游戏对象(播放模式)

javascript - 回调已在异步模块中调用

c# - .NET 单任务等待的用例

JAVA按n执行线程栈

performance - 如何在 Unity3D 中优化场景加载

ios - Unity-音频文件在iPhone和iPad上播放不佳

node.js - 异步/等待未在 Azure 应用服务中运行

javascript - 在 javascript 中,如何使用 fs.writeFile 并循环数组并在新文本文件中垂直完全打印数组中的每个项目

c# - 计算 Minecraft 爆炸

3d - 将 Unity 转换转换为 THREE.js 旋转