问题标签 [navmesh]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1653 浏览

c# - NavmeshAgent 播放器在翻山时与山坡不平行

NavmeshAgent 播放器在翻山时与山坡不平行。在平面上它进展顺利。

看视频

下面是 navMesh 和播放器的 图像属性https://ibb.co/fijmoV

0 投票
1 回答
484 浏览

unity3d - Unity3D:Unity 的 NavMeshAgents 是否不再将优先级较低的代理推开?

我最近遇到了 Unity 代理的一个小问题。到目前为止,如果我们的代理与另一个(更高或同等优先级)代理相交,他们将被推开。

然而最近这种行为发生了变化,它们现在只是相交/穿过。较低优先级的代理似乎禁用(保持静止),直到较高优先级的代理离开。

是否存在与我的 AI 相关的潜在问题(这是我的目的),还是 Unity 对 NMA 所做的更改?

我正在使用 Unity 2018.2.10f1

0 投票
3 回答
3263 浏览

c# - NPC 在 Navmesh 上实例化

我正在尝试以网格方式在 NavMesh 上实例化 NPC 预制件。预制件具有组件 NavMeshAgent,并且 NavMesh 已烘焙。我收到错误:

这在放置在 NavMesh 上的空 GameObject 上使用以下脚本:

0 投票
0 回答
409 浏览

c# - Unity3D - 如何在我的塔防游戏中实现第一个目标?

我正在制作一个塔防游戏,其中 NavMeshAgents 穿过从生成点到终点的路径。我的敌人都走同样的路(目前),但他们以不同的速度行进。目前,我的塔总是以离他们最近的敌人为目标。我希望我的塔瞄准需要沿着路径行进最短距离才能到达终点的敌人。

我尝试使用 agent.remainingDistance 但它一直返回 Infinity(根据文档,这意味着代理不知道剩余距离)。

塔.cs:

敌人.cs:

我正在使用对象池来召唤我的敌人。所以把 OnSpawned() 当作 Start()。

更新: 将我的定位代码更改为

它似乎瞄准了最近的敌人。所以,敌人还在 pathPending...??

0 投票
1 回答
1275 浏览

unity3d - 代理从它下面的 navmesh 上的 navmesh 掉下来

我的游戏是点击移动游戏。在一个区域,我有一个可步行的导航网格,在它下面还有另一个导航网格的可步行部分。我的问题是,通常在我攻击敌人后,有时但并非总是如此,当我点击移动时,我的玩家会落在下面的导航网格上。我对敌人也有同样的问题,他们只是被编程为跟随玩家并在射程内攻击,有时会摔倒。没有人附有刚体。

对这个问题有任何想法吗?随时询问更多细节。

谢谢。

0 投票
1 回答
37 浏览

unity3d - 使敌人能够攻击 2 个不同的物体

我正在制作一个波浪生存游戏,您可以在其中建立防御,我想制作它,以便敌人会攻击您放置的物体以破坏它们并攻击您。我想知道是否有办法找到敌人是否没有以一定的速度移动,因此他们被困在墙后面试图接近玩家。如果他们被卡住,用它来让他们攻击最近的墙壁。

我将健康脚本添加到玩家使用的墙壁以及刚体

0 投票
1 回答
1196 浏览

unity3d - Unity3D 复制的 NavMesh 代理不移动

在我的场景中,我有一个移动到特定目的地的代理。当我尝试复制它以创建第二个代理时,结果行为非常奇怪:代理被传送到地图的相对角落并停止移动。此外,运行时的导航网格似乎发生了变化(如您在第二个屏幕截图中所见)。一旦我禁用一个代理,另一个代理就会按预期开始工作。

编辑:这是我用于角色的代码(如您所见,我手动管理角色旋转/翻译而不是委派代理,这在我将相同的脚本分配给前面提到的第二个角色之前效果很好)。

只有一种活性剂 两个重复的代理都处于活动状态

0 投票
1 回答
507 浏览

c# - 如何记录 NavMesh AI 代理的方向

我想知道如何获取 Navmesh Agent 行走的方向,我计划使用这些值将它们引用到 Blendtree 以根据 AI 方向播放某些动画,使用 2D 自由形式笛卡尔平面我计划使用这些引用的方向值来播放某些动画,X 和 Z 方向都从零开始。所以向前走 Z 值为 1,而 X 值为 0

目前我已经尝试过使用刚体速度和transform.forward(X和Z),虽然我没有收到使用速度的值,但是transform.forward确实给出了增加的值但是它看起来不像我正在寻找的值(这些值需要在 0-1 的范围内),以及从未有过 0,0 的起始位置(空闲)

我的笛卡尔平面如下 笛卡尔平面

任何帮助将不胜感激,感谢您阅读

0 投票
1 回答
1132 浏览

c# - NavMeshAgent 与 Unity 中的目标点朝向相同的方向

我有一个 NavMeshAgent NPC,它可以正确地走到它的目的地位置。但是,当它停止时,它面向步行方向,而我想让它转向与目的地点相同的方向,以最自然的方式,因为我的 NPC 是人类。

在此处输入图像描述

有没有办法让NPC在走到目的地的同时,也设置目的地轮换?

0 投票
1 回答
1840 浏览

unity3d - Unity3d NavMeshAgent.isOnNavMesh 在特定功能中变为假

我已更改标题以反映添加的澄清信息。

我正在关注 [Unity 教程][1],当需要测试播放器点击控件时,Unity 给了我一个错误:

“SetDestination”只能在已放置在 NavMesh 上的活动代理上调用。

据我所知,我的代理处于活动状态并且在 navMesh 上,所以这有点令人困惑。我已经尝试重新烘焙 navMesh 并重新定位代理,但两者都不起作用。

到目前为止,我发现的所有问题都相当于提问者根本没有导航网格,所以......是的......不是很有帮助。任何有关如何解决此问题的建议都将不胜感激。

编辑: 我刚刚Debug.Log(agent.isOnNavMesh);在我的代码中添加了一个快速 & 低 & 看它评估为true. 偷看混乱。

EDIT-2 将相同的内容Debug.Log(agent.isOnNavMesh);放入我的public void OnGroundClickfxn 并false在点击后评估。开始好奇的困惑。

这由 Unity 事件系统调用:

EDIT-3Debug.Log(agent.isOnNavMesh);输入到private void Update(),它评估为true并继续这样做,即使在 Click 调用之后也是如此public void OnGroundClick

在开始时禁用然后启用代理OnGroundClick不会影响情况

尽管我仍然不知所措,但我至少离解决方案更近了,而且还有比“这不起作用,请帮助!”更多的信息。现在。

这是完整上下文中的代码: