首页 > 解决方案 > Astar Pathfinding Project 将 AI 代理的 z 位置设置为 2D 项目中的错误值

问题描述

我正在 Unity 中开发 2D 游戏,并且正在使用Aron Granberg 的 A* Pathfinding Package

一切似乎都运行良好。AIPath 正在生成,AI 代理正在点对点导航,并按预期避开障碍物。没关系,除了一件事

position.zAI 代理的 不正确。

AI 代理的生成原点的 az 为 0,目标点的 az 为 0,但 AI 代理的 z 在遍历路径时在 -9 和 -1 之间波动。路径本身在每个航路点的 z 位置似乎都为 0。

我根本没有修改包中的代码,只是在设置 2D 时遵循了文档。

有什么想法可能导致这种情况吗?

注意:我没有包含它的屏幕截图,但是作为 AI 代理生成的预制件的变换位置为 (0,0,0)。

A-star 探路者对象:

探路者和网格图设置

AI Agent 对象(注意 Z 位置不为 0): 在此处输入图像描述

为 AI 代理设置生成的生成点对象: 在此处输入图像描述

AI 代理前往的目标目标对象: 在此处输入图像描述

标签: unity3d

解决方案


以防其他人遇到这个问题。

解决方法是向我的 AI 代理添加 Rigidbody2D 并将重力比例设置为 0。

尽管我的游戏没有使用 Unity 的物理系统进行移动,并且 Astar 包可以通过变换移动 AI 代理,但出于某种原因,它需要一个刚体来保持 Z 位置为 0。

我仍然不确定为什么这能解决问题,因为当我调试第三方 Astar 代码时,它总是返回 Z 位置为 0 的 nextPosition 值,但 AI 代理更新为具有不同 Z 的实际位置职位...

如果您有更多信息,请发表评论,我会将其添加到答案中。


推荐阅读