问题标签 [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.
java - Java 2D 导航网格生成
我正在使用多边形剪裁器(http://www.lighti.de/projects/polygon-clipper-for-java/)和 libgdx delaunayTriangulator 来生成 2D 导航网格。
一切正常,直到我在“可行走”多边形内完全添加一个障碍物多边形。
这应该发生吗?
c# - Unity 不会在协程中更新 NavMeshAgent 目的地
我正在 Unity 5 中编写一个 AI 脚本,该脚本主要由协程构成,用于在我的游戏中移动 AI 对象。它实际上工作得很好,并且以这种方式独立于框架。我试图避免混淆Update
类的功能。
但是,我正在尝试创建一个名为wander 的函数,人工智能在其中徘徊并随机选择Vector3
航点区域中的几个s 并前往每个s。之后,人工智能应该去下一个航路点,基本上做同样的事情到无穷远。碰撞检测和所有这些都是为了后面的部分。我想先修复导航部分。
wander
如果我将函数与idle
in 中的函数交换nextWaypoint
,一切都会按预期工作,但这一点永远不会起作用:
这是一些测试代码(手动设置只有 1 个位置point[0]
,但它永远不会到达那个目的地。SetDestination
永远不会更新到我想要设置它们的点。我已经尝试预先计算路径(NavMeshPath)和除了目标路径之外的所有东西都不会奇怪地改变或重置。我while (float.Epsilon < agent.remainingDistance)
在函数中也有循环wander
,但没有运气,因为它会永远留在那个循环中,因为没有路径可以去。
我可能在这里遗漏了一些东西,或者在这种情况下我的逻辑是错误的。希望有人可以给我一点推动或一些额外的调试选项,因为我不知道为什么目的地没有在我的漫游功能中更新。
c# - 从可步行点生成导航网格(3D)
这是交易 - 我正在研究一种算法/库,它能够在几乎任何环境中生成导航网格,在这些环境中,我可以获得受控代理和/或同一静态环境中其他代理的坐标。我唯一的输入是代理去过的点的集合。 (请参阅此处的图片以希望了解我的意思)
我已经到了可以手动创建导航网格并很好地导航它们的地步。然而,在更大的环境中,只有受控代理的坐标,手动执行它真的很乏味和耗时。
这种算法/库的用途对我来说是显而易见的,但我已经考虑了很多,所以我将列出一些我想要完成的事情:
- 机器人技术(扫描环境,仅获取从自身到点的距离,因此获取坐标 - 无需复杂的图像/视频处理)
- 能够通过探索未知和看不见的迷宫(任何形状或大小)来导航它的人工智能
- 记录步行区域并为不知道某些地方的游戏创建人工智能,除非他们去过那里
现在你希望看到我正在寻找什么样的解决方案。
我已经尝试了几件事,但无法弄清楚。我尝试过的最成功的事情之一是给每个单独的点一个范围(创建一个圆圈),然后寻找有重叠圆圈的地方——你很可能在这些区域上移动。这种方法的问题始于对区域的三角测量。生成的网格可能有点不准确,但它必须能够无缝连接到网格的现有(“发现”)部分(并非所有内容都必须以某种方式互连,因为代理可以消失和重新出现,但在合理的接近范围内,连接网格)。
更多信息:我正在使用 C#,尽管 java、C++/C、目标 C、伪代码等的解决方案同样可以接受。
PS我对“只使用这个库”或“使用这个其他语言/环境”等答案完全不感兴趣......我想要一个算法。先感谢您。
c# - 如何让游戏忽略 Unity3D 中 UI 按钮的点击?
我有一个 UI Button
(使用UnityEngine.UI
)。
然而,点击Button
似乎是点击进入场景(在我的情况下点击导航网格)。
如何解决这个问题呢?
我一直在使用典型的 Unity3D 代码让用户参与游戏,例如
如果我尝试这种方法也一样
在 iOS、Android 和桌面上似乎也是如此。
点击 UI(UnityEngine.UI.Button
等)似乎是游戏的基本问题。
unity3d - Unity Navmeshagent 到达停止距离时不会面对目标对象
当我和他说话时,我试图让 NPC 看着主角。我需要确保它看起来很自然,并且他面对着我。我知道我可以做 Transform.LookAt() 但这太即时且不自然。
当 navmeshagent 停止移动时,如何旋转它以面对我的角色?