Unity GameAI A star pathfinding project插件(P2P尋路)

A star pathfinding project插件點(diǎn)到點(diǎn)尋路

  • A*的插件和導(dǎo)入省略筛严。

  • 首先搭建一個(gè)如下的場(chǎng)景用于演示:

Paste_Image.png
  • 添加一個(gè)空物體忙迁,將它命名為A,接著添加A中最重要的腳本pathFinder
Paste_Image.png
  • 接著在在腳本中選擇,Graphs進(jìn)行之前提到的像素化地圖乐纸。
Paste_Image.png
  • 這里進(jìn)行Grid Graph(格子)的像素化地圖常柄。
  • 接著在Scene面板中鲤氢,我們可以看見以A*空物體為原點(diǎn)的一邊區(qū)域的地圖以格子的形式被像素化。
Paste_Image.png
  • 由于我們的Plane的尺寸是55的西潘,所以我們對(duì)A的尺寸進(jìn)行同化卷玉。(注意也需將Center的坐標(biāo)對(duì)應(yīng))
Paste_Image.png
  • 接著我們可以得到整張像素化的地圖。
Paste_Image.png
  • 接著添加兩個(gè)層喷市。(obstacles和Ground),分別給Cube和Plane添加相种。
Paste_Image.png
  • 由于障礙物是需要碰撞的所以,我們?cè)贑ollision testing Mask添加obstacles品姓,并把高度測(cè)試Height testing Mask選擇為Ground寝并。
Paste_Image.png
Paste_Image.png
  • 這樣我們A*的環(huán)境就基本搭建完成。
Paste_Image.png
  • 接著我們?yōu)槲覀兊膱?chǎng)景創(chuàng)建一個(gè)A角色腹备,并為它添加插件中的(Seeker腳本用于獲取路線和尋路)衬潦,添加Character Contorller,和我們用于控制整體的自己編寫的AstarAI腳本植酥。
Paste_Image.png
  • 進(jìn)行AstarAI 腳本的編寫镀岛。
  • 首先我們定義好我們需要使用到的屬性弦牡,Path屬性來(lái)自于插件,需要引入命名空間漂羊。
Paste_Image.png
  • 在Start中初始化驾锰,使用seeker的StartPath開始進(jìn)行尋路
Paste_Image.png
  • 注意這里的 seeker.pathCallback是需要一個(gè)Path對(duì)象為參數(shù)無(wú)返回值的委托代理。我們可以查看API
Paste_Image.png
Paste_Image.png
  • 所以我們定一個(gè)方法作為它的回調(diào)函數(shù)走越。
Paste_Image.png
  • 如果物體銷毀了椭豫,我們就不在給它傳輸路徑。
Paste_Image.png
  • 接著在FixedUpdate中進(jìn)行判斷旨指,它是否沒(méi)找到路徑或者已經(jīng)到達(dá)終點(diǎn)赏酥。
Paste_Image.png
  • 如果不是以上兩種情況,我們則進(jìn)行尋路算法的實(shí)現(xiàn)淤毛。
  • 計(jì)算當(dāng)前路徑節(jié)點(diǎn)和物體當(dāng)前位置的向量今缚,由于只需要方向,所以單位化低淡,使用Character Contorller的SimpleMove進(jìn)行移動(dòng)
Paste_Image.png
  • 最后使用四元數(shù)的LookRotation方法更新朝向姓言。
Paste_Image.png
  • 實(shí)現(xiàn)簡(jiǎn)單的點(diǎn)對(duì)點(diǎn)式的尋路
Paste_Image.png

實(shí)現(xiàn)在多點(diǎn)中找尋最近的一個(gè)點(diǎn)。使用seeker的StartMultiTargetPath方法

  • 搭建場(chǎng)景
Paste_Image.png
  • 其他操作同之前一樣蔗蹋。
  • 將需要作為尋路的物體放在targets下作為子物體何荚。
Paste_Image.png
  • 為AIPlayer替換MutiTargetPath腳本,并編寫猪杭。
  • 遍歷targets的子物體并保存在endpoints中餐塘。
  • 使用seeker的StartMultiTargetPath方法進(jìn)行實(shí)現(xiàn)。
Paste_Image.png
  • 演示:


    Paste_Image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末皂吮,一起剝皮案震驚了整個(gè)濱河市戒傻,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蜂筹,老刑警劉巖需纳,帶你破解...
    沈念sama閱讀 206,968評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異艺挪,居然都是意外死亡不翩,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門麻裳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)口蝠,“玉大人,你說(shuō)我怎么就攤上這事津坑∶钫幔” “怎么了?”我有些...
    開封第一講書人閱讀 153,220評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵疆瑰,是天一觀的道長(zhǎng)眉反。 經(jīng)常有香客問(wèn)我狞谱,道長(zhǎng),這世上最難降的妖魔是什么禁漓? 我笑而不...
    開封第一講書人閱讀 55,416評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮孵睬,結(jié)果婚禮上播歼,老公的妹妹穿的比我還像新娘。我一直安慰自己掰读,他們只是感情好秘狞,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評(píng)論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蹈集,像睡著了一般烁试。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上拢肆,一...
    開封第一講書人閱讀 49,144評(píng)論 1 285
  • 那天减响,我揣著相機(jī)與錄音,去河邊找鬼郭怪。 笑死支示,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的鄙才。 我是一名探鬼主播颂鸿,決...
    沈念sama閱讀 38,432評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼攒庵!你這毒婦竟也來(lái)了嘴纺?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,088評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤浓冒,失蹤者是張志新(化名)和其女友劉穎栽渴,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體裆蒸,經(jīng)...
    沈念sama閱讀 43,586評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡熔萧,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了僚祷。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片佛致。...
    茶點(diǎn)故事閱讀 38,137評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖辙谜,靈堂內(nèi)的尸體忽然破棺而出俺榆,到底是詐尸還是另有隱情,我是刑警寧澤装哆,帶...
    沈念sama閱讀 33,783評(píng)論 4 324
  • 正文 年R本政府宣布罐脊,位于F島的核電站定嗓,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏萍桌。R本人自食惡果不足惜宵溅,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望上炎。 院中可真熱鬧恃逻,春花似錦、人聲如沸藕施。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)裳食。三九已至矛市,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間诲祸,已是汗流浹背浊吏。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留烦绳,地道東北人卿捎。 一個(gè)月前我還...
    沈念sama閱讀 45,595評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像径密,于是被迫代替她去往敵國(guó)和親午阵。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • 大家好享扔,這次給大家分享最近學(xué)習(xí)A* 這款插件的心得底桂,前面我一點(diǎn)點(diǎn)介紹,到最終我們實(shí)現(xiàn)一個(gè)多個(gè)小隊(duì)尋路的效果惧眠。 首先...
    Moment__格調(diào)閱讀 1,394評(píng)論 0 1
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,522評(píng)論 25 707
  • 講座第一部分主講內(nèi)容分為三點(diǎn): A.如何經(jīng)營(yíng)自己的微信籽懦,讓微信成為自己的個(gè)人ID。 B.如何經(jīng)營(yíng)好一個(gè)微信群氛魁。 C...
    狒狒0810閱讀 452評(píng)論 0 0
  • 有關(guān)情緒覺(jué)察的冥想 瓊林老師帶領(lǐng)我們做了一個(gè)冥想來(lái)熱身開場(chǎng)暮顺。讓我們以畫面的形式憶起上一次老公讓我們自己生氣的事情,...
    kelly小琳閱讀 437評(píng)論 0 0
  • Git遠(yuǎn)程操作詳解 作者: 阮一峰 Git是目前最流行的版本管理系統(tǒng)秀存,學(xué)會(huì)Git幾乎成了開發(fā)者的必備技能捶码。Git有...
    488a74c3bb61閱讀 706評(píng)論 1 7