【问题标题】:Unity Navmesh Performance IssueUnity Navmesh 性能问题
【发布时间】:2021-08-07 01:51:25
【问题描述】:

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

【问题讨论】:

  • 提供 gif 和图片。如果您认为这与它有关,请向我们展示您的代码。

标签: c# unity3d navigation agent-based-modeling navmesh


【解决方案1】:

将您的 SetDestination 移动到 Start()

public Transform hedef;
NavMeshAgent agent;

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

根据NavMesh 文档,您正在更新和重新创建代理的路径每个帧。除非您的 hedef 位置发生变化,否则我看不到这样做的理由,从我从您的用例中可以看出,它不应该发生变化。如果它确实发生了变化,则逐渐 ping 位置已更改的单位,因此当 Unity 重新计算其路径时,您不会有任何卡顿。

【讨论】:

  • 谢谢我已经试过了,但仍有一些代理在等待移动。
  • @EnesDoğukanÖzgener 您有多少活跃的代理?
  • 您是否遇到任何错误?是否有任何特工被从导航网中击落?他们要等多久才能搬家?毫秒、秒、分钟?他们只是被什么东西卡住了吗?
  • 感谢您的帮助,我解决了我更改电脑电源和显卡设置的问题
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2022-08-03
    • 2017-05-10
    • 1970-01-01
    • 1970-01-01
    • 2020-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多