← 筆記 [C++/UE] UE5中AI開發的一點功能梳理(七) – Navigation 導航系統
導航系統 Navigation
Nav Mesh Bounds Volume
- Add Object -> Volumes -> Nav Mesh Bounds Volume
- 生成具體的尋路區,物體需要包裹住整個需要生成導航網格的區域

- 按P預覽尋路區域(RecastNavMesh-Default)

- 其他具體的網格生成配置可在ProjectSettings -> Navigation Mesh -> Generation區裡找到,如Agent Slope(可爬斜度)、CellSize(網格大小)等等
Nav Modifier Volume
- Add Object -> Volumes -> Nav Modifier Volume
- 修改網格的尋路成本cost,使其cost更高/更低,可用於微調尋路區域
- ProjectSettings -> Navigation Mesh -> Draw Polygon Costs可顯示網格尋路的Cost
- Area Class
- Default 沒有任何影響
- Low Height 足夠矮的AI可以通過
- Null Volume範圍的網格會直接被裁切掉,不能在上面尋路
- Obstacle 高成本區域,在其為唯一通路時才可行
- 可使用自定義Modifier

動態Modifier
- 前置
- Project settings -> Navigation Mesh -> Runtime Generation => Dynamic Modifiers Only
- 途徑1: 給物體增加Collision Area
- Collision Area -> Navigation
- Dynamic Obstacle => true
- Use System Default Obstacle Area => false
- Area Class Override => 選擇對應的Area Class

- 途徑2: 給物體添加NavModifier組件,然後Modifier會直接合併所有物體的Overlap Area作為NavArea區域
- Area Class => 選擇對應的Area Class

自定義Area Class

- Default Cost 通過成本
- Fixed Area Entering Cost 進入後的通過成本
NavLinkProxy
- Add Object -> All Classes -> Nav Link Proxy
- 創建點與點之間的連接,可以實現高低處跳躍/跨越特定鴻溝的功能
