SlideShare a Scribd company logo
UNITY5.5
Manual Introduction
Navigation | Pathfinding
王聖川
Navigation System
• NavMesh. Navigation運算來源之模型幾何.
• NavMesh Agent.
• Off-Mesh Link. 額外路徑連節.
• NavMesh Obstacle.
– Carve on: 即時在NavMesh資料上挖洞, 產生真實障礙.
– Carve off: 類似physical collider, agent會避開.
Navigation System
• Walkable areas. 可行走範圍.
• A*演算法自動尋徑.
• 自動嘗試避開前方障礙物.
• NavMesh agent會計算物體的前進速度.
• 使用Carve(挖洞)功能, 設置靜態障礙物.
Build NavMesh
• 收集所有Navigation Static物件來計算產生NavMesh.
• 設定Agent參數.
– Agent Radius | Agent Height: 碰撞半徑, 高度.
– Max Slope: 可行走斜坡之最大夾角.
– Step Height: 可跨過之階梯高度.
• Advanced bake setting.
– Min Region Area: 最小面積下限.
– Voxel size: 預設為Agent Radius / 3.
Build NavMesh
• 藍色區域為產生的NavMesh.
– 路徑: Asset > (Scene/Level name) > NavMesh.asset
Navigation System
• 建立NavMesh Agent component.
– Script中透過NavMeshAgent.destination即可指定目的地,
agent開始自動尋徑.
• 建立Off-Mesh Link.指定Start與End位置.
Navigation System
• Unity自動產生Off-Mesh Links.
– Drop Height: 上下跳躍路徑參考的高度落差最大值.
– Jump Distance: 水平跳躍路徑參考的最大距離.
Navigation System
• 建立Height mesh.
• Area與Cost.
– Path finding cost: 行經該區域的代價.
• 代價越高前進速度越慢.
– Area: 區域類別.
• 可用在判別特定Agent是否可通過.
• (內建)Walkable: 可行走.
• (內建)Not Walkable: 不可行走.
• (內建)Jump: Off-mesh link預設area type.
Navigation System
• 在讀入多個場景時 , Application.LoadLevelAdditive(),
NavMesh之間透過off-mesh links連節起來.
– Scene1 與Scene2分別設定off-mesh link, 當Scene1與Scene2都
完成讀入後, off-mesh link便會生效.
使用NavMesh Agent
• Agent  Physics.
– Agent自行控制物體. (同時啟用NavMeshAgent與Rigidbody會
發生transform race condition)
– 與周圍物理引擎互動: 使用Kinematic Rigidbody + collider.
– Script中由NavMeshAgent.velocity控制agent前進方向.
使用NavMesh Agent
• Agent  Animator.
– 同時啟用NavMeshAgent與root control from animator會發生
transform race condition.
– Agent主導控制: 參考NavMeshAgent.velocity與其他條件, 調
整物體animator狀態.
– Animator主導控制: 關閉NavMeshAgent.updatePosition與
NavMeshAgent.updateRotation ; 使用
NavMeshAgent.nextPosition與Animator.rootPosition來預測與
控制物體前進.
使用NavMesh Agent
• Agent  Obstacle.
– Agent不可以是Obstacle. 反之亦然, 彼此互斥.
– Agent進入靜止狀態後(死亡), 適合改變為Obstacle.
• Obstacle  Physics.
– Obstacle同時使用Rigidbody控制, Rigidbody會給予物體運動
控制, 並且可被agent預測.
How to
• Move to one destination.
• Click mouse to assign destination.
• 巡邏行為.
• Animation與agent搭配使用.
– 由NavMeshAgent.velocity來計算animator控制條件.
– Animation主導物體, 搭配navigation系統前進. 此做法可減少
腳步滑動現象 (foot-sliding).

More Related Content

More from River Wang

20220529_UniTask_Intro.pptx
20220529_UniTask_Intro.pptx20220529_UniTask_Intro.pptx
20220529_UniTask_Intro.pptx
River Wang
 
zenject extenject-intro
zenject extenject-introzenject extenject-intro
zenject extenject-intro
River Wang
 
Unity optimize mobile game performance
Unity optimize mobile game performanceUnity optimize mobile game performance
Unity optimize mobile game performance
River Wang
 
DoozyUI_基礎介紹教學
DoozyUI_基礎介紹教學DoozyUI_基礎介紹教學
DoozyUI_基礎介紹教學
River Wang
 
Gamedev: Multi-threaded animate model
Gamedev: Multi-threaded animate modelGamedev: Multi-threaded animate model
Gamedev: Multi-threaded animate model
River Wang
 
桌面應用工具軟體開發方案評估 (Based on Unity engine)
桌面應用工具軟體開發方案評估 (Based on Unity engine)桌面應用工具軟體開發方案評估 (Based on Unity engine)
桌面應用工具軟體開發方案評估 (Based on Unity engine)
River Wang
 
OGRE v2.1 manual - Technical Overview
OGRE v2.1 manual - Technical OverviewOGRE v2.1 manual - Technical Overview
OGRE v2.1 manual - Technical Overview
River Wang
 
OGRE v2.1 manual - Changes: Objects, Scene & Nodes
OGRE v2.1 manual - Changes: Objects, Scene & NodesOGRE v2.1 manual - Changes: Objects, Scene & Nodes
OGRE v2.1 manual - Changes: Objects, Scene & Nodes
River Wang
 
OGRE v1.10 manual - The Core Objects
OGRE v1.10 manual - The Core ObjectsOGRE v1.10 manual - The Core Objects
OGRE v1.10 manual - The Core Objects
River Wang
 
OpenCascade Technology Overview: Modeling Data
OpenCascade Technology Overview: Modeling DataOpenCascade Technology Overview: Modeling Data
OpenCascade Technology Overview: Modeling Data
River Wang
 
OpenCascade Technology Overview: OCAF
OpenCascade Technology Overview: OCAFOpenCascade Technology Overview: OCAF
OpenCascade Technology Overview: OCAF
River Wang
 
OpenCascade Technology Overview: Visualization
OpenCascade Technology Overview: VisualizationOpenCascade Technology Overview: Visualization
OpenCascade Technology Overview: Visualization
River Wang
 
OpenCascade Technology Overview: Foundation Classes
OpenCascade Technology Overview: Foundation ClassesOpenCascade Technology Overview: Foundation Classes
OpenCascade Technology Overview: Foundation Classes
River Wang
 
2017 graphics-01: 電腦圖學繪圖流程
2017 graphics-01: 電腦圖學繪圖流程2017 graphics-01: 電腦圖學繪圖流程
2017 graphics-01: 電腦圖學繪圖流程
River Wang
 

More from River Wang (14)

20220529_UniTask_Intro.pptx
20220529_UniTask_Intro.pptx20220529_UniTask_Intro.pptx
20220529_UniTask_Intro.pptx
 
zenject extenject-intro
zenject extenject-introzenject extenject-intro
zenject extenject-intro
 
Unity optimize mobile game performance
Unity optimize mobile game performanceUnity optimize mobile game performance
Unity optimize mobile game performance
 
DoozyUI_基礎介紹教學
DoozyUI_基礎介紹教學DoozyUI_基礎介紹教學
DoozyUI_基礎介紹教學
 
Gamedev: Multi-threaded animate model
Gamedev: Multi-threaded animate modelGamedev: Multi-threaded animate model
Gamedev: Multi-threaded animate model
 
桌面應用工具軟體開發方案評估 (Based on Unity engine)
桌面應用工具軟體開發方案評估 (Based on Unity engine)桌面應用工具軟體開發方案評估 (Based on Unity engine)
桌面應用工具軟體開發方案評估 (Based on Unity engine)
 
OGRE v2.1 manual - Technical Overview
OGRE v2.1 manual - Technical OverviewOGRE v2.1 manual - Technical Overview
OGRE v2.1 manual - Technical Overview
 
OGRE v2.1 manual - Changes: Objects, Scene & Nodes
OGRE v2.1 manual - Changes: Objects, Scene & NodesOGRE v2.1 manual - Changes: Objects, Scene & Nodes
OGRE v2.1 manual - Changes: Objects, Scene & Nodes
 
OGRE v1.10 manual - The Core Objects
OGRE v1.10 manual - The Core ObjectsOGRE v1.10 manual - The Core Objects
OGRE v1.10 manual - The Core Objects
 
OpenCascade Technology Overview: Modeling Data
OpenCascade Technology Overview: Modeling DataOpenCascade Technology Overview: Modeling Data
OpenCascade Technology Overview: Modeling Data
 
OpenCascade Technology Overview: OCAF
OpenCascade Technology Overview: OCAFOpenCascade Technology Overview: OCAF
OpenCascade Technology Overview: OCAF
 
OpenCascade Technology Overview: Visualization
OpenCascade Technology Overview: VisualizationOpenCascade Technology Overview: Visualization
OpenCascade Technology Overview: Visualization
 
OpenCascade Technology Overview: Foundation Classes
OpenCascade Technology Overview: Foundation ClassesOpenCascade Technology Overview: Foundation Classes
OpenCascade Technology Overview: Foundation Classes
 
2017 graphics-01: 電腦圖學繪圖流程
2017 graphics-01: 電腦圖學繪圖流程2017 graphics-01: 電腦圖學繪圖流程
2017 graphics-01: 電腦圖學繪圖流程
 

2017 unity5.5 manual_navigation

  • 2. Navigation System • NavMesh. Navigation運算來源之模型幾何. • NavMesh Agent. • Off-Mesh Link. 額外路徑連節. • NavMesh Obstacle. – Carve on: 即時在NavMesh資料上挖洞, 產生真實障礙. – Carve off: 類似physical collider, agent會避開.
  • 3. Navigation System • Walkable areas. 可行走範圍. • A*演算法自動尋徑. • 自動嘗試避開前方障礙物. • NavMesh agent會計算物體的前進速度. • 使用Carve(挖洞)功能, 設置靜態障礙物.
  • 4. Build NavMesh • 收集所有Navigation Static物件來計算產生NavMesh. • 設定Agent參數. – Agent Radius | Agent Height: 碰撞半徑, 高度. – Max Slope: 可行走斜坡之最大夾角. – Step Height: 可跨過之階梯高度. • Advanced bake setting. – Min Region Area: 最小面積下限. – Voxel size: 預設為Agent Radius / 3.
  • 5. Build NavMesh • 藍色區域為產生的NavMesh. – 路徑: Asset > (Scene/Level name) > NavMesh.asset
  • 6. Navigation System • 建立NavMesh Agent component. – Script中透過NavMeshAgent.destination即可指定目的地, agent開始自動尋徑. • 建立Off-Mesh Link.指定Start與End位置.
  • 7. Navigation System • Unity自動產生Off-Mesh Links. – Drop Height: 上下跳躍路徑參考的高度落差最大值. – Jump Distance: 水平跳躍路徑參考的最大距離.
  • 8. Navigation System • 建立Height mesh. • Area與Cost. – Path finding cost: 行經該區域的代價. • 代價越高前進速度越慢. – Area: 區域類別. • 可用在判別特定Agent是否可通過. • (內建)Walkable: 可行走. • (內建)Not Walkable: 不可行走. • (內建)Jump: Off-mesh link預設area type.
  • 9. Navigation System • 在讀入多個場景時 , Application.LoadLevelAdditive(), NavMesh之間透過off-mesh links連節起來. – Scene1 與Scene2分別設定off-mesh link, 當Scene1與Scene2都 完成讀入後, off-mesh link便會生效.
  • 10. 使用NavMesh Agent • Agent  Physics. – Agent自行控制物體. (同時啟用NavMeshAgent與Rigidbody會 發生transform race condition) – 與周圍物理引擎互動: 使用Kinematic Rigidbody + collider. – Script中由NavMeshAgent.velocity控制agent前進方向.
  • 11. 使用NavMesh Agent • Agent  Animator. – 同時啟用NavMeshAgent與root control from animator會發生 transform race condition. – Agent主導控制: 參考NavMeshAgent.velocity與其他條件, 調 整物體animator狀態. – Animator主導控制: 關閉NavMeshAgent.updatePosition與 NavMeshAgent.updateRotation ; 使用 NavMeshAgent.nextPosition與Animator.rootPosition來預測與 控制物體前進.
  • 12. 使用NavMesh Agent • Agent  Obstacle. – Agent不可以是Obstacle. 反之亦然, 彼此互斥. – Agent進入靜止狀態後(死亡), 適合改變為Obstacle. • Obstacle  Physics. – Obstacle同時使用Rigidbody控制, Rigidbody會給予物體運動 控制, 並且可被agent預測.
  • 13. How to • Move to one destination. • Click mouse to assign destination. • 巡邏行為. • Animation與agent搭配使用. – 由NavMeshAgent.velocity來計算animator控制條件. – Animation主導物體, 搭配navigation系統前進. 此做法可減少 腳步滑動現象 (foot-sliding).