mak*_*uzu 15 asynchronous unity-game-engine
是否有任何机构知道任何以统一方式执行异步任务的方式.我正在寻找一段时间,但却找不到任何办法.我正在尝试着色游戏,有一个泛洪填充算法,需要一些时间来处理.谢谢你的帮助.
Ger*_*man 10
您可以在Unity中使用线程来执行异步操作.通常,您运行分离的线程(来自Unity UI)来执行长时间运行的进程并检查结果(您无法从工作线程与Unity交互).常见的方法是使用一个代表线程作业的类,它将由Unity主线程初始化.然后你在该类的函数上启动一个工作线程并让它完成它的工作(Coroutines在Unity主线程上运行所以不是真正的线程.关于Coroutines的最佳文章在这里)
以下是上述方法的示例(请参阅已接受的答案):
http://answers.unity3d.com/questions/357033/unity3d-and-c-coroutines-vs-threading.html
您可能还想尝试UnityGems包,它可以实现相同的效果但提供方便(例如关闭支持):
HTH.最好!
您可以使用C#线程来进行异步工作.您可以在此处找到有关线程的更多信息.
您必须注意,您无法从工作线程与Unity交互,因此在完成工作后,您必须使用Unity线程中的结果.您只需在将执行更新的MonoBehaviour上设置一个标志并检查Update方法中的标志即可.与此类似的东西:
void Update()
{
if( _workDone )
{
...display it
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
44394 次 |
| 最近记录: |