Unity Navmesh 性能问题

问题描述

我目前正在使用 Unity Engine 导航网格组件进行消防疏散项目。但是,当我增加代理数量时,疏散性能显着下降。一些特工等待很长时间才能撤离。你知道我该如何解决这个导航网格代理的性能问题吗?

Evacuation Script

解决方法

将您的 SetDestination 移至 Start()

public Transform hedef;
NavMeshAgent agent;

void Start()
{
    agent = GetComponent<NavMeshAgent>();
    agent.SetDestination(hedef.position);
}

根据 NavMesh 文档,您正在帧更新和重新创建代理的路径。除非您的 hedef 位置发生变化,否则我认为没有理由这样做,从我从您的用例中可以看出,它不应该发生变化。如果它确实发生了变化,那么逐渐向单位发出位置发生变化的信号,这样当 Unity 重新计算它们的路径时你就不会出现任何卡顿现象。

,

我认为您需要提供更多详细信息,因为如果您的代理出门或类似的事情,您可以使用列表或队列先激活