在Unity中使用多线程生成对象

时间:2018-05-14 06:36:38

标签: c# multithreading unity3d artificial-intelligence path-finding

我是初学者程序员。我想创建一个Objectspawner类似中间件的多线程中的Process Pathfinding脚本然后将其传递回Gameobject来执行。基本上每个对象都要求寻路,计算过程将由不同的线程处理。我应该学会如何创造这个?

2 个答案:

答案 0 :(得分:1)

这是可能的。你可以在另一个Thread中使用Unity的结构和数学API,如Vector3Vector2Mathf

获取Object的位置,将其存储在Vector3Vector2中,然后启动一个新线程并将Vector传递给它。您可以在新线程中执行所有寻路工作。

每当您需要更新Object的位置或使用新Thread中的修改后的Vector时,请使用我的其他post中的UnityThread.executeInUpdate函数执行此操作。此函数允许您从另一个Thread调用Unity API。如果你不想使用我的,你就可以制作你的,或者你可以从那篇文章中了解它是如何制作的,然后自己制作。

答案 1 :(得分:0)

虽然可以在Unity中启动单独的线程,但它自己的API不支持来自其主线程的任何其他线程的调用,在该线程中它执行脚本。实例化对象是你不想在主线程中做的最后一件事。为什么你认为你需要线程?