如何处理大量的Navmesh Agents?

我在一个场景中拥有超过200个units,它们全部使用Unity的NavmeshAgent来设置前往主目标的目的地。我面临的问题是,当units数量很大时,其中一些units停止移动,只有在前几个units被摧毁后才会恢复移动。
我已经尝试了以下方法:
1. 每20个帧仅更新一次目的地;

if (Time.frameCount % 20 == 0)
{
    // ...
}

2. 使用协程;

private IEnumerator StaggerSetNewDestination(Vector3 position)
{
   myNavMeshAgent.SetDestination(position);
   yield return new WaitForSeconds(0.1f);
}

然而,这些方法都没有解决问题。

 

共以下 1 个回答

  • dewtr 2023年4月4日 上午11:28


    当你的代理数量变得非常庞大时,你可能需要转换为flow field寻路。


    0 赞同 0 条回复

# 回答此问题

您的电子邮箱地址不会被公开。 必填项已用*标注