配置与标签
JSON 全局配置
文件:SDGToolSet/Config/sdg_nav_config.json。所有字段可选,缺失使用代码默认值。修改后可用控制台命令 SDGNav.ReloadConfig 热加载。
{
"voxel": { "size_cm": 100, "tile_dims": [64, 64, 64] },
"path_generation": { "seed": 12345, "connectivity": 26, "fit": { "degree": 5 } },
"movement": { "speed_cm_per_sec": 400, "agent_radius_cm": 50 },
"orbit": { "radius_cm": 1000, "angle_deg": 360 },
"debug": { "debug_draw": false, "grid_viz_max_boxes": 5000 }
}
运行 SDGNav.GenerateConfigTemplate 控制台命令可生成包含所有默认值的完整模板。
| 控制台命令 | 作用 |
|---|---|
SDGNav.ReloadConfig | 运行时热加载 JSON 配置 |
SDGNav.GenerateConfigTemplate | 生成含全部默认值的配置模板 |
标签约定
| 标签 | 用途 |
|---|---|
SDG.Navigation.Volume | 可导航体积(Volume 自动携带) |
SDG.Navigation.Block | 阻挡体积 |
SDG.Navigation.Target | Orbit 注视目标 |
常见问题
Q:路径生成了 0 条?
- 检查 Volume 尺寸(至少要容纳几个体素);
VoxelSize不能大于体积最小维度;AveragePathDistance设为 0 让系统自动计算。
Q:编辑器属性面板的值和 JSON 不一样?
- JSON 在
BeginPlay时覆盖编辑器中手动设置的值; - 如需保留编辑器设置,删除 JSON 中对应字段即可。
Q:如何只用 Orbit 不用直线路径?
SDGPathManagerComponent设置bUseOrbitTargetIfPresent = true;- 场景中放置带
SDG.Navigation.Target标签的 Actor。
:::note 路径越界提示
高阶多项式拟合(如 fit.degree = 5)可能在路径端点附近超出可导航体素体积(Runge 现象)。若对边界敏感,可降低拟合阶数或关闭拟合;A* 路径点与 Orbit 样条本身保持在界内。
:::
完整 API 参考见插件内 Doc/API.md。