[Unity] 敵人,怪物如何自動找到你透過NavMesh 快速開發
如果要開發RPG或是FPS 類型遊戲,其中很多電腦敵人或是NPC同伴,那光是處理路徑計算,就叫人吐血了
還好Unity 有提供 NavMesh 的方法,只要告訴NPC 要去的 Vector3(座標),它就會乖乖去摟
那要按照以下步驟
1.在NPC身上加上 NavMesh Component
2.需要告訴NPC 的 NavMesh 要往哪裡走,這時就需要寫一下Script
3. 直接運行的話,會噴錯喔 XD 錯誤如下
SetDestination can only be called on an active agent that has been placed on a navmesh
4. 那是因為要使用 NavMesh 要先 Bake (就像是CS BOT 新地圖要讓BOT 研究一下路線阿),到 Window > Navigation > Bake 點擊下方的 Bake
這樣就大功告成啦
BTW
建議Bake時不要把主角放到場景上喔,因為這樣有時候主角會變成無敵的XD(collider 會失效)
還好Unity 有提供 NavMesh 的方法,只要告訴NPC 要去的 Vector3(座標),它就會乖乖去摟
那要按照以下步驟
1.在NPC身上加上 NavMesh Component
2.需要告訴NPC 的 NavMesh 要往哪裡走,這時就需要寫一下Script
void Update() { if (!player.death/*判斷使用者還活者*/) { // ... 告訴NPC 目前要去的目標,那這裡是玩家的座標 nav.SetDestination(player.position); } // Otherwise... else { // ... disable the nav mesh agent. nav.enabled = false; } }
3. 直接運行的話,會噴錯喔 XD 錯誤如下
SetDestination can only be called on an active agent that has been placed on a navmesh
4. 那是因為要使用 NavMesh 要先 Bake (就像是CS BOT 新地圖要讓BOT 研究一下路線阿),到 Window > Navigation > Bake 點擊下方的 Bake
5. Bake 完後地圖就會出現路線區域標示
BTW
建議Bake時不要把主角放到場景上喔,因為這樣有時候主角會變成無敵的XD(collider 會失效)
留言
張貼留言