[C++/UE] UE5中AI開發的一點功能梳理(七) – Navigation 導航系統Programming Notes, DevNotes / By LoneliNerd / 2024 年 3 月 30 日 2024 年 3 月 30 日 導航系統 NavigationNav Mesh Bounds VolumeAdd Object -> Volumes -> Nav Mesh Bounds Volume生成具體的尋路區,物體需要包裹住整個需要生成導航網格的區域 按P預覽尋路區域(RecastNavMesh-Default) 其他具體的網格生成配置可在ProjectSettings -> Navigation Mesh -> Generation區裡找到,如Agent Slope(可爬斜度)、CellSize(網格大小)等等 Nav Modifier VolumeAdd Object -> Volumes -> Nav Modifier Volume修改網格的尋路成本cost,使其cost更高/更低,可用於微調尋路區域ProjectSettings -> Navigation Mesh -> Draw Polygon Costs可顯示網格尋路的CostArea ClassDefault 沒有任何影響Low Height 足夠矮的AI可以通過Null Volume範圍的網格會直接被裁切掉,不能在上面尋路Obstacle 高成本區域,在其為唯一通路時才可行可使用自定義Modifier 動態Modifier前置Project settings -> Navigation Mesh -> Runtime Generation => Dynamic Modifiers Only途徑1: 給物體增加Collision AreaCollision Area -> NavigationDynamic Obstacle => trueUse System Default Obstacle Area => falseArea Class Override => 選擇對應的Area Class 途徑2: 給物體添加NavModifier組件,然後Modifier會直接合併所有物體的Overlap Area作為NavArea區域Area Class => 選擇對應的Area Class 自定義Area Class創建繼承至NavArea的藍圖類可定義參數 Default Cost 通過成本Fixed Area Entering Cost 進入後的通過成本 NavLinkProxyAdd Object -> All Classes -> Nav Link Proxy創建點與點之間的連接,可以實現高低處跳躍/跨越特定鴻溝的功能