问题标签 [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.
unity3d - Unity3D:Unity 的 NavMeshAgents 是否不再将优先级较低的代理推开?
我最近遇到了 Unity 代理的一个小问题。到目前为止,如果我们的代理与另一个(更高或同等优先级)代理相交,他们将被推开。
然而最近这种行为发生了变化,它们现在只是相交/穿过。较低优先级的代理似乎禁用(保持静止),直到较高优先级的代理离开。
是否存在与我的 AI 相关的潜在问题(这是我的目的),还是 Unity 对 NMA 所做的更改?
我正在使用 Unity 2018.2.10f1
c# - NPC 在 Navmesh 上实例化
我正在尝试以网格方式在 NavMesh 上实例化 NPC 预制件。预制件具有组件 NavMeshAgent,并且 NavMesh 已烘焙。我收到错误:
和
这在放置在 NavMesh 上的空 GameObject 上使用以下脚本:
c# - Unity3D - 如何在我的塔防游戏中实现第一个目标?
我正在制作一个塔防游戏,其中 NavMeshAgents 穿过从生成点到终点的路径。我的敌人都走同样的路(目前),但他们以不同的速度行进。目前,我的塔总是以离他们最近的敌人为目标。我希望我的塔瞄准需要沿着路径行进最短距离才能到达终点的敌人。
我尝试使用 agent.remainingDistance 但它一直返回 Infinity(根据文档,这意味着代理不知道剩余距离)。
塔.cs:
敌人.cs:
我正在使用对象池来召唤我的敌人。所以把 OnSpawned() 当作 Start()。
更新: 将我的定位代码更改为
它似乎瞄准了最近的敌人。所以,敌人还在 pathPending...??
unity3d - 代理从它下面的 navmesh 上的 navmesh 掉下来
我的游戏是点击移动游戏。在一个区域,我有一个可步行的导航网格,在它下面还有另一个导航网格的可步行部分。我的问题是,通常在我攻击敌人后,有时但并非总是如此,当我点击移动时,我的玩家会落在下面的导航网格上。我对敌人也有同样的问题,他们只是被编程为跟随玩家并在射程内攻击,有时会摔倒。没有人附有刚体。
对这个问题有任何想法吗?随时询问更多细节。
谢谢。
unity3d - 使敌人能够攻击 2 个不同的物体
我正在制作一个波浪生存游戏,您可以在其中建立防御,我想制作它,以便敌人会攻击您放置的物体以破坏它们并攻击您。我想知道是否有办法找到敌人是否没有以一定的速度移动,因此他们被困在墙后面试图接近玩家。如果他们被卡住,用它来让他们攻击最近的墙壁。
我将健康脚本添加到玩家使用的墙壁以及刚体
c# - 如何记录 NavMesh AI 代理的方向
我想知道如何获取 Navmesh Agent 行走的方向,我计划使用这些值将它们引用到 Blendtree 以根据 AI 方向播放某些动画,使用 2D 自由形式笛卡尔平面我计划使用这些引用的方向值来播放某些动画,X 和 Z 方向都从零开始。所以向前走 Z 值为 1,而 X 值为 0
目前我已经尝试过使用刚体速度和transform.forward(X和Z),虽然我没有收到使用速度的值,但是transform.forward确实给出了增加的值但是它看起来不像我正在寻找的值(这些值需要在 0-1 的范围内),以及从未有过 0,0 的起始位置(空闲)
我的笛卡尔平面如下
任何帮助将不胜感激,感谢您阅读
unity3d - Unity3d NavMeshAgent.isOnNavMesh 在特定功能中变为假
我已更改标题以反映添加的澄清信息。
我正在关注 [Unity 教程][1],当需要测试播放器点击控件时,Unity 给了我一个错误:
“SetDestination”只能在已放置在 NavMesh 上的活动代理上调用。
据我所知,我的代理处于活动状态并且在 navMesh 上,所以这有点令人困惑。我已经尝试重新烘焙 navMesh 并重新定位代理,但两者都不起作用。
到目前为止,我发现的所有问题都相当于提问者根本没有导航网格,所以......是的......不是很有帮助。任何有关如何解决此问题的建议都将不胜感激。
编辑:
我刚刚Debug.Log(agent.isOnNavMesh);
在我的代码中添加了一个快速 & 低 & 看它评估为true
. 偷看混乱。
EDIT-2
将相同的内容Debug.Log(agent.isOnNavMesh);
放入我的public void OnGroundClick
fxn 并false
在点击后评估。开始好奇的困惑。
这由 Unity 事件系统调用:
EDIT-3
我Debug.Log(agent.isOnNavMesh);
输入到private void Update()
,它评估为true
并继续这样做,即使在 Click 调用之后也是如此public void OnGroundClick
。
在开始时禁用然后启用代理OnGroundClick
不会影响情况
尽管我仍然不知所措,但我至少离解决方案更近了,而且还有比“这不起作用,请帮助!”更多的信息。现在。
这是完整上下文中的代码: