尋路算法非常重要,因為絕大部分的遊戲都需要用到,比如RPG遊戲中的任務系統,任務點擊任務後需要自動尋路到目標位置,再比如Moba遊戲,我們點擊地圖,英雄就會自動尋路到點擊的地方。這就是尋路算法的作用了。那麼怎麼實現尋路算法呢?現在比較流行的就有A*。其實unity有內置的尋路算法,那就是導航網格組件。有了它,我們就可以進行尋路了。
首先我們要用unity的導航網格組件,我們就需要烘焙場景,然後根據烘焙出來的數據,才能進行具體尋路,比如什麼地方可以走,什麼地方不能走,爬坡的最大高度等等,所以你怎麼烘焙你的場景,就會出現怎麼樣的尋路地圖。然後我們讓需要尋路的物體掛載一個尋路組件就可以了。這就是原理了。好,我們先來看看怎麼烘焙場景。
尋路算法非常重要,因為絕大部分的遊戲都需要用到,比如RPG遊戲中的任務系統,任務點擊任務後需要自動尋路到目標位置,再比如Moba遊戲,我們點擊地圖,英雄就會自動尋路到點擊的地方。這就是尋路算法的作用了。那麼怎麼實現尋路算法呢?現在比較流行的就有A*。其實unity有內置的尋路算法,那就是導航網格組件。有了它,我們就可以進行尋路了。
首先我們要用unity的導航網格組件,我們就需要烘焙場景,然後根據烘焙出來的數據,才能進行具體尋路,比如什麼地方可以走,什麼地方不能走,爬坡的最大高度等等,所以你怎麼烘焙你的場景,就會出現怎麼樣的尋路地圖。然後我們讓需要尋路的物體掛載一個尋路組件就可以了。這就是原理了。好,我們先來看看怎麼烘焙場景。
當你看到你的場景出現淺藍色的區域時,那麼你就成功的烘焙了你的場景了,淺藍色區域就是可以行走的區域了。擁有尋路組件的物體可以在這區域自由移動。OK,當然由於我的場景很簡單,所以沒有其他複雜的東西設定,所以也就沒有多餘的區域了。
但是這是特效情況,就特殊對待了,要知道導航網格不是這麼簡單的。然後我們烘焙好了場景,需要讓物體來尋路了。首先創建一個物體,然後給物體掛載尋路組件NavMeshAgent組件,然後調整下參數就可以寫代碼了。
尋路算法非常重要,因為絕大部分的遊戲都需要用到,比如RPG遊戲中的任務系統,任務點擊任務後需要自動尋路到目標位置,再比如Moba遊戲,我們點擊地圖,英雄就會自動尋路到點擊的地方。這就是尋路算法的作用了。那麼怎麼實現尋路算法呢?現在比較流行的就有A*。其實unity有內置的尋路算法,那就是導航網格組件。有了它,我們就可以進行尋路了。
首先我們要用unity的導航網格組件,我們就需要烘焙場景,然後根據烘焙出來的數據,才能進行具體尋路,比如什麼地方可以走,什麼地方不能走,爬坡的最大高度等等,所以你怎麼烘焙你的場景,就會出現怎麼樣的尋路地圖。然後我們讓需要尋路的物體掛載一個尋路組件就可以了。這就是原理了。好,我們先來看看怎麼烘焙場景。
當你看到你的場景出現淺藍色的區域時,那麼你就成功的烘焙了你的場景了,淺藍色區域就是可以行走的區域了。擁有尋路組件的物體可以在這區域自由移動。OK,當然由於我的場景很簡單,所以沒有其他複雜的東西設定,所以也就沒有多餘的區域了。
但是這是特效情況,就特殊對待了,要知道導航網格不是這麼簡單的。然後我們烘焙好了場景,需要讓物體來尋路了。首先創建一個物體,然後給物體掛載尋路組件NavMeshAgent組件,然後調整下參數就可以寫代碼了。
就這一句代碼,我們就能實現我們想要的尋路效果,它會從起點開始,一直尋路直到走到目標位置。