gpt4 book ai didi

unity3d - unity NavMesh 让多个敌人走不同的路径

转载 作者:行者123 更新时间:2023-12-01 11:36:27 48 4
gpt4 key购买 nike

我正在开发一款游戏,其中有多个敌人都朝着同一个目标移动。我遇到的问题是,所有的敌人都走相同的路径到达这个目标,这导致了不切实际的敌人“聚集”。我的问题是:如何让它们散开一点以产生拥挤效果?我目前使用的是 Unity 内置的 NavMesh 系统。我知道必须有一种方法来惩罚一个敌人用来鼓励其他敌人走替代路径的路径,但我只是不知道如何实现它。任何帮助表示赞赏! (此外,我最了解 C# 中的代码,但我可以稍微了解 JavaScript)

最佳答案

您可以为每个代理设置随机不同的Radius。然后他们将绕过障碍物走不同的路线。这不会改变这样一个事实,即在空白空间中它们的行为都相同。

或许您还可以为目的地引入一些随机性。但如果随机性太大,可能会使代理看起来很愚蠢。

编辑:

对于某些游戏设计,一个好的方法可能是为一队特工进行导航,并为其中的每个成员从小队中心进行位置偏移。如果特工彼此靠近,您还可以动态组建小队。

为了确定代理是否彼此如此接近,以至于他们应该动态地组成一个小队,您不需要在每个代理的每次更新中循环遍历所有其他代理。

首先,根据比赛的激烈程度,可以在每10-100次更新左右进行一次距离测试。

其次,您可以使用特殊的数据结构来存储对所有代理的引用。例如,如果游戏区域是固定的,则可以将其划分为大小相等的区域。可以有 2D(或 3D)向量数组,其中存储相应区域中的所有代理。然后代理只需要测试在同一向量或相邻向量中也引用的其他代理。当然,当代理移动时需要更新引用。

如果小队中已经有代理人,则只针对小队进行测试可能就足够了,而不是针对其中的每个成员进行测试。

关于unity3d - unity NavMesh 让多个敌人走不同的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26644196/

48 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com