3

我试图在 Unity3d 中实现多线程脚本执行,但似乎 Unity 库没有提供任何方法,我们必须使用 Mono 提供的 System.Threading。但是他们提到 Unity Scripting 不是线程安全的。

我可以使用 System.threading 或其他独立于平台的 API 在 Unity3D 中安全有效地实现多线程吗?另外,我如何确保脚本并行运行?

一个例子或一个链接将不胜感激。

问候

4

2 回答 2

5

我需要一个 iOS 应用程序的线程,不幸的是我从来没有在 Unity 中找到这样做的方法。但是您可以编写一个使用线程的插件。在我的应用程序中,我需要线程来为音乐应用程序计时,所以我编写了一个音频插件库,它在 xcode 中使用 core-audio,你可以在那里做所有你想要的线程。但是管理 Unity 和插件之间的同步是相当痛苦的。

于 2012-03-27T19:18:18.480 回答
1

一般来说,您可以自由使用多线程。但是有一个重要的警告:对 Unity API 的所有调用都必须从主线程完成。因此,请随意使用线程进行 AI、路径查找等。最后,您需要将计算结果传回主线程。

Unity 提供了有时有用的线程替代方案:协程。它们允许您在片段中运行您的函数(yield 和 resume),并且所有操作都在主线程中完成,因此您可以使用 Unity API。但是请注意,它们不适合繁重的计算。

于 2013-05-07T21:31:39.907 回答