Unity的 NavMeshObstacle 的使用詳解


        這個組件放在場景中的導航網格上,可以阻擋NavMeshAgent的移動。以Unity4.3.4為例。

        NavMeshObstacle 分為兩種模式,一種是普通模式,通過設置半徑和高度來確定一個范圍,阻檔NavMeshAgent移動,一種是Carve模式,在導航網格上,根據模型的大小,挖出一個“洞”,使模型范圍內的導航網格消失,這樣NavMeshAgent就不能經過次區域了。

        可以設置的屬性如下:

Radius:半徑

Height:高度

Move Threshold:當模式為Carve時,此物體的移動距離超過這個閥值后,更新當前的導航網格(從新挖洞)。

Carve:是否打開在導航網格挖洞的模式。

 

        Carve模式的一些總結:

  • 在Bake場景的時候,Navigation窗口的Bake頁面有一個高度值,場景中的導航網格通常作為一個平面,當NavMeshObstacle 距離小於這個高度時,才會在導航網格上挖洞,否則NavMeshObstacle 還是以普通模式存在的。
  • NavMeshObstacle 在剛創建的時候最好先關閉NavMeshObstacle 這個組件,但需要是再打開,否則會有bug(先創建NavMeshObstacle,再Additive場景后,場景中一直存在一個不可通過區域)。創建完畢后,移動到適當位置再激活這個組件。
  • 碰撞還是使用trigger
  • 最好不要同時使用RigidBody,有bug,新版本可能改好了,參考鏈接
  • 在挖洞時,設備掉幀比較明顯。善用Move Threshold。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM