You need to enable JavaScript to run this app. 如何限制Navigation2D仅沿四个正方向寻路及相关异常问题咨询
优惠活动
大模型
产品
解决方案
定价
更多

如何限制Navigation2D仅沿四个正方向寻路及相关异常问题咨询

导航区域顶点模糊问题解决

你观察到的绿色导航轮廓顶点模糊是导航网格生成参数导致的,按以下配置修改即可:

  • 将NavigationMesh2D的agent_radius参数设为0,关闭导航区域默认的向内收缩偏移
  • 将edge_max_error参数设为0,关闭顶点平滑处理
  • 将edge_margin参数设为0,移除边缘预留间隙
    修改后重新生成导航网格,生成的轮廓会完全贴合你定义的4像素宽导航多边形,不会再出现模糊的圆角效果。

强制寻路仅允许直角转弯

有两种实现方案,按需选择即可:

方案一:路径后处理(最简便)

拿到Navigation2D返回的路径点数组后做二次处理,遍历所有相邻路径点:
如果两个点的x坐标差和y坐标差都不为0(即斜向移动),插入一个中间点,优先对齐x轴或y轴均可。例如点A(x1,y1)到点B(x2,y2),插入(x2,y1)后路径就变为A→(x2,y1)→B,自动转为直角移动。

方案二:修改导航网格生成规则

如果不想做后处理,生成导航多边形时仅保留水平、垂直两个方向的连接边,禁用所有斜向的连通关系,同时调用寻路接口NavigationServer2D.map_get_path时将optimize参数设为false,关闭路径自动优化合并功能,即可保证返回的路径点全为正交连接。

寻路不返回最短路径问题排查

常见触发原因有三个:

  • 导航网格cell_size设置过大,精度不足导致窄通道识别失败,导航系统判定最优通道无法通行,自动选择更长的可通行路径,将cell_size设为不大于2像素即可匹配你4像素宽的通道精度
  • agent_radius设置大于0,导航系统会自动预留角色通行空间,导致4像素宽的通道被判定为无法通行,按前面的要求设为0即可解决
  • 生成的导航多边形存在细小缝隙,两个本应连通的区域被断开,导航系统只能选择其他连通的长路径,生成导航多边形后手动检查连通性,或者将cell_size调小解决缝隙识别问题

内容的提问来源于stack exchange,提问作者Zahir J

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.15 09:45:03