A*演算法之在U3d下實現簡單的自動尋路
演算法簡介:
A搜尋演算法俗稱A星演算法。A演算法是比較流行的啟發式搜尋演算法之一,被廣泛應用於路徑優化領域[。它的獨特之處是檢查最短路徑中每個可能的節點時引入了全域性資訊,對當前節點距終點的距離做出估計,並作為評價該節點處於最短路線上的可能性的量度。[1] – 百度百科
通俗點說,就是在起點與目標點之中找出一條可通行的最短路線。常見於各類RPG遊戲中的自動尋路功能:點選某個任務,人物會自動移動過去;點選地圖上某個點,人物也會照著顯示出來(或者隱藏了)的路線前進。玩過LoL,紅色警戒等類似遊戲的小夥伴都知道,右擊小地圖的某一處,小地圖會出現一條從當前位置到所點選位置的紅色路線,然後英雄就會隨著這條路線一直走到目標點。這種功能,就是A*演算法的在遊戲中的常見應用之處。
場景佈置:
1 佈置地面:場景中新建一個Plane(地面)重置一下Transform,然後將Scale拉伸至20倍(此時地面的大小是200×200),地面是不帶y座標的,即只有xz平面,此時平面上左下角座標點是(-100,-100),右上角是(100,100)這個很重要,後面的判斷座標點是否越界(超出地面範圍)就是依據這個地面的大小和座標
2 佈置障礙物:新建一個空物體Bars,在Bars下建立一個cube,將cube隨便拉伸做成一堵牆,然後複製,擺放到場景上各個位置。
3 建立玩家:場景中新建一個Capsule(為了好控制,就選用膠囊體了),取名為Player,為它掛上Character Controller角色控制器。
4 路線:新建一個Sphere球,塗成紅色,改名叫Way,解除安裝掉Collider(一定要解除安裝),做成預製體,用來表示計算出來的路線上的每一點。新建一個空物體Ways,用來儲存路線
5 層級設定:為了程式碼中好檢測,為地面Plane設立一個單獨的層Plane,層級號位9.所有障礙物層級為Bars,層級號為8
更多unity2018的功能介紹請到paws3d學習中心查詢。
相關文章
- Elasticsearch 實現簡單搜尋Elasticsearch
- 【Javascript + Vue】實現對任意迷宮圖片的自動尋路JavaScriptVue
- unity 自動尋路Unity
- python3+telnetlib實現簡單自動測試Python
- SimpleAISearch:C# + DuckDuckGo 實現簡單的AI搜尋AIC#Go
- Unity實現A*尋路演算法學習2.0Unity演算法
- Python實現效能自動化測試竟然如此簡單Python
- Windows on Arm 下的 Inline Hook 簡單實現WindowsinlineHook
- 簡易實現 HTTPS (一) 自動實現 sslHTTP
- 實現一個簡單的輪詢演算法演算法
- 實現一個簡單的DOM diff演算法演算法
- 如何實現簡單的分散式鏈路功能?分散式
- 基於Unity的A星尋路演算法(絕對簡單完整版本)Unity演算法
- 動手實現一個簡單的promisePromise
- Servlet實現、與html的簡單互動ServletHTML
- 遊戲中的自動尋路-A*演算法(走斜線篇——帶DEBUG)遊戲演算法
- 動手實現一個簡單的 rpc 框架到入門 grpc (下)RPC框架
- 使用canvas實現簡單動畫Canvas動畫
- 小程式如何實現自動回覆訊息的功能?一個簡單的方法
- 如何實現 AppStore App 的自動下載APP
- Flutter 網路請求的三種簡單實現Flutter
- 應用內路徑規劃的簡單實現
- 自己動手實現一個簡單的 IOC
- 前端動畫效果實現的簡單比較前端動畫
- jquery 實現滑動條的簡單驗證jQuery
- AOP的簡單實現
- 簡單的 HashMap 實現HashMap
- 實現簡單的BitMap
- ArrayList的簡單實現
- 用ListView簡單實現滑動列表View
- UITabBarController移除系統自帶UITabBarButton簡單實現UItabBarController
- 讓動畫實現更簡單,Flutter 動畫簡易教程!動畫Flutter
- TypeScript實現陣列相關簡單演算法TypeScript陣列演算法
- Sunday搜尋演算法實現演算法
- 訂單自動過期實現方案 - 轉
- 任務排程並行演算法的Java簡單實現並行演算法Java
- 任務排程並行演算法的Python簡單實現並行演算法Python
- 流程圖——正交連線的演算法的一種簡單實現流程圖演算法