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 實現簡單的神經網路演算法JavaScript神經網路演算法
- 簡單實現安卓app自動更新功能安卓APP
- 用 JS 實現簡單的神經網路演算法JS神經網路演算法
- 【Javascript + Vue】實現對任意迷宮圖片的自動尋路JavaScriptVue
- jQuery實現的自動播放簡單程式碼例項jQuery
- A*演算法的簡單實現薦演算法
- unity 自動尋路Unity
- 簡單批處理,實現ip地址的自動切換
- Meteor+MongoDB 實現簡單的即時搜尋MongoDB
- python下ssh的簡單實現Python
- linux 程式監控和自動重啟的簡單實現Linux
- Unity實現A*尋路演算法學習2.0Unity演算法
- 實戰:Nodejs+Mongodb+Elasticsearch 實現簡單的搜尋NodeJSMongoDBElasticsearch
- 訂單自動生成器的演算法研究與實現薦演算法
- 最簡單的LRU演算法java實現演算法Java
- Python實現效能自動化測試竟然如此簡單Python
- 自動駕駛中的機器學習演算法簡單介紹 - Haltakov自動駕駛機器學習演算法
- 實現一個簡單的DOM diff演算法演算法
- 實現一個簡單的輪詢演算法演算法
- php實現抽獎的簡單概率演算法PHP演算法
- 簡易實現 HTTPS (一) 自動實現 sslHTTP
- 遊戲中的自動尋路-A*演算法(走斜線篇——帶DEBUG)遊戲演算法
- Servlet實現、與html的簡單互動ServletHTML
- 動手實現一個簡單的promisePromise
- SimpleAISearch:C# + DuckDuckGo 實現簡單的AI搜尋AIC#Go
- 網路拓撲自動發現演算法演算法
- python3+telnetlib實現簡單自動測試Python
- 關於尋路演算法的一些思考(3):A*演算法的實現演算法
- 小程式如何實現自動回覆訊息的功能?一個簡單的方法
- 如何實現簡單的分散式鏈路功能?分散式
- 基於Unity的A星尋路演算法(絕對簡單完整版本)Unity演算法
- 用 VB 實現表單的自動提交 (轉)
- Blowfish 加密演算法 Java 版簡單實現加密演算法Java
- kmp演算法實現原理及簡單示例KMP演算法
- Spring Boot 揭祕與實戰 自己實現一個簡單的自動配置模組Spring Boot
- 一種高效的尋路演算法 - B*尋路演算法演算法
- 簡易實現Redis監控自動簡訊告警Redis