C# Unity3d中的多线程脚本调用

C# Unity3d中的多线程脚本调用,c#,multithreading,unity3d,unityscript,boo,C#,Multithreading,Unity3d,Unityscript,Boo,我试图在Unity3d中实现多线程脚本执行,但是Unity库似乎没有提供方法,我们必须使用Mono提供的System.Threading。但是他们提到Unity脚本不是线程安全的 我是否可以使用System.threading或其他独立于平台的API在Unity3D中安全高效地实现多线程? 另外,如何确保脚本并行运行 一个例子或链接将不胜感激 关于我需要为iOS应用程序提供线程,不幸的是,我从未找到在Unity中实现这一点的方法。但是你可以编写一个使用线程的插件。在我的应用程序中,我需要线程来为

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

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

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


关于

我需要为iOS应用程序提供线程,不幸的是,我从未找到在Unity中实现这一点的方法。但是你可以编写一个使用线程的插件。在我的应用程序中,我需要线程来为音乐应用程序计时,因此我编写了一个音频插件库,它在xcode中使用核心音频,您可以在那里执行所有需要的线程。但是管理Unity和插件之间的同步是相当痛苦的

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


Unity提供了线程的另一种选择,它有时很有用:。它们允许您在片段中运行函数(yield和resume),所有操作都是从主线程完成的,因此您可以利用UnityAPI。但是请注意,它们不适合进行繁重的计算。

Oops,我很少使用协同程序,我一直认为它们就像其他语言中的线程一样——有些知识:-)。我删除了我的答案,所以你更可能从其他人那里得到答案。是的,协同程序与线程完全没有任何联系。是的,我想我可能需要为它编写一个插件:但是要使它独立于平台,我需要通过一些过程来完成,以便它对所有平台都是稳定的。