- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发一款游戏,其中有多个敌人都朝着同一个目标移动。我遇到的问题是,所有的敌人都走相同的路径到达这个目标,这导致了不切实际的敌人“聚集”。我的问题是:如何让它们散开一点以产生拥挤效果?我目前使用的是 Unity 内置的 NavMesh 系统。我知道必须有一种方法来惩罚一个敌人用来鼓励其他敌人走替代路径的路径,但我只是不知道如何实现它。任何帮助表示赞赏! (此外,我最了解 C# 中的代码,但我可以稍微了解 JavaScript)
最佳答案
您可以为每个代理设置随机不同的Radius
。然后他们将绕过障碍物走不同的路线。这不会改变这样一个事实,即在空白空间中它们的行为都相同。
或许您还可以为目的地引入一些随机性。但如果随机性太大,可能会使代理看起来很愚蠢。
编辑:
对于某些游戏设计,一个好的方法可能是为一队特工进行导航,并为其中的每个成员从小队中心进行位置偏移。如果特工彼此靠近,您还可以动态组建小队。
为了确定代理是否彼此如此接近,以至于他们应该动态地组成一个小队,您不需要在每个代理的每次更新中循环遍历所有其他代理。
首先,根据比赛的激烈程度,可以在每10-100次更新左右进行一次距离测试。
其次,您可以使用特殊的数据结构来存储对所有代理的引用。例如,如果游戏区域是固定的,则可以将其划分为大小相等的区域。可以有 2D(或 3D)向量数组,其中存储相应区域中的所有代理。然后代理只需要测试在同一向量或相邻向量中也引用的其他代理。当然,当代理移动时需要更新引用。
如果小队中已经有代理人,则只针对小队进行测试可能就足够了,而不是针对其中的每个成员进行测试。
关于unity3d - unity NavMesh 让多个敌人走不同的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26644196/
我尝试在 Unity3D 中烘焙导航网格在没有成功的飞机上。我直到最近才遇到这个问题,在 2020.1 附近发布日期。我将平面设置为导航静态、可行走,并在选定平面的情况下烘焙导航网格。 A NavMe
我在 Unity 2019.3.12f1 for macOS 中使用 NavMesh 烘焙楼梯 3D 模型时遇到了一个大问题。 只是楼梯不会像我预期的那样成为 NavMesh 的一部分。 当然,楼梯是
问题描述 我正在努力解决我的 NavMesh 代理计算无效路径而存在 显然没有理由。当它们是 时,会不时出现问题。已经搬家了具有初始有效路径。 在上图中,目的地是左上角的圆锥。 (不要介意 NavMe
如何在运行时从脚本中烘焙 NavMesh。我在 Google 中搜索但没有找到。 some rendered scene and buttons including bake 最佳答案 目前,Unit
如何在运行时从脚本中烘焙 NavMesh。我在 Google 中搜索但没有找到。 some rendered scene and buttons including bake 最佳答案 目前,Unit
我正在开发一款游戏,其中有多个敌人都朝着同一个目标移动。我遇到的问题是,所有的敌人都走相同的路径到达这个目标,这导致了不切实际的敌人“聚集”。我的问题是:如何让它们散开一点以产生拥挤效果?我目前使用的
我尝试在 Unity 中创建 RTS 游戏,但在寻路方面遇到问题。我使用 NavMesh 进行寻路,效果很好:单位避免静态对象。但单位不会互相回避。有一个名为 NavMesh Obstacle 的组件
我正在对一栋三层公寓进行演练。导航约束是通过覆盖每个楼层(包括楼梯)的导航网格完成的。 我想提供一个快捷方式,用户可以在其中单击按钮并跳转到相应的楼层。到目前为止,位置的改变是有效的,但一旦玩家开始行
在我的场景中,我的 NavMesh 位于中心(黄色的),其中设置了 3 个要跟踪的立方体。我希望 NavMesh 从所有立方体中找到距离它最近且路径最短的一个并开始跟随它。我已经编写了这样做的代码,但
我正在尝试在 Unity 引擎中开发一种可与光子网络系统配合使用的 AI。它应该相当简单:它跑向一个随机的玩家,直到他和玩家之间的距离达到 5 个单位,然后它以稍微慢一点的速度走到玩家的前面。然后他攻
我想制作一个简单的脚本,将 NavMesh 代理引导至各个航路点。我是Unity新手,所以一些基本功能我还不知道,而是输入了伪代码。 using UnityEngine; using UnityEng
我试图让角色通过点击它来跟随移动的物体(基本 RTS 移动),而且我听说使用协程比使用 void Update 节省更多的计算能力。但是,我对协同程序很陌生,需要一些帮助。 另外,我觉得没有必要包含点
我有一个地形(有一些山脉、树木、河流等),我希望我的代理能够跟随玩家在整个地形上平稳运行(我的意思是从山上掉下来并爬到一定角度(例如跳跃)) 代理不是在“攀登”/从山上掉下来 一个问题是我的特工无法跳
我不希望玩家穿墙。我尝试了 aframe extras,但它在当前的 aframe 版本中不起作用。在 Aframe 1.3.0 中还有其他方法或解决方案吗? 最佳答案 您可以使用 AdaRoseCa
我有这段代码可以让敌人跟随我的玩家(并攻击等),但我不确定如何将导航网格添加到其中以便它可以导航障碍物。目前,它继续前进并卡在墙壁和障碍物上。我以前从未使用过导航网格。 我将如何在这段代码中实现 na
我现在正在使用 Unity5。我在尝试 setDestination 时遇到此错误。 "SetDestination" can only be called on an active agent th
我是一名优秀的程序员,十分优秀!