最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Unity戰(zhàn)棋卡牌游戲開(kāi)發(fā)教程

2023-05-25 09:48 作者:編程之力  | 我要投稿

Unity開(kāi)發(fā)教程 打造戰(zhàn)棋手游

教學(xué)視頻觀看

點(diǎn)擊進(jìn)入

學(xué)習(xí) 爆款戲戰(zhàn)棋游戲開(kāi)發(fā)過(guò)程

學(xué)習(xí)案例:

小張:順利的完成了畢業(yè)設(shè)計(jì)(游戲開(kāi)發(fā)專(zhuān)業(yè))

小明:具備了制作獨(dú)立游戲的能力

張三:為公司的虛擬仿真項(xiàng)目(VR/AR)提供了資源更新方案

李四:為公司項(xiàng)目提供了成C#熱更方案

所以這堂課具備學(xué)習(xí)和商業(yè)價(jià)值


課程從簡(jiǎn)單到困難,依次分成了4個(gè)維度

第一季:戰(zhàn)棋游戲基礎(chǔ)開(kāi)發(fā)

第二季: 資源管理和更新

第三季:ILRUNTIME代碼熱更設(shè)計(jì)

第四季:聯(lián)網(wǎng)對(duì)戰(zhàn)(包含前后端,ET框架)


打消你的一切顧慮,先看后買(mǎi),專(zhuān)人服務(wù)

因?yàn)椴糠珠_(kāi)發(fā)者基礎(chǔ)欠缺,課程購(gòu)買(mǎi)之后發(fā)現(xiàn)看不懂

所以課程全部免費(fèi)觀看。


但是

購(gòu)買(mǎi)課程后可以獲得

完整素材和源碼

專(zhuān)人的服務(wù)和解答


學(xué)習(xí)建議:

完整的看一遍目錄,先了解你到底需要什么。大部分學(xué)生只需要學(xué)習(xí)第一季

前期不要過(guò)多關(guān)注細(xì)節(jié)!前期不要過(guò)多關(guān)注細(xì)節(jié)!前期不要過(guò)多關(guān)注細(xì)節(jié)!

因?yàn)樵谇捌谟^看時(shí),部分開(kāi)發(fā)者會(huì)遇到不明白的地方

(這句代碼到底哪里來(lái)的?是什么意思)

而這些內(nèi)容是放在后面講解的,堅(jiān)持順著課程看下去很重要

購(gòu)買(mǎi)課程的用戶,遇到問(wèn)題添加QQ972421090。

老師會(huì)協(xié)助處理問(wèn)題。

注明-戰(zhàn)棋游戲開(kāi)發(fā)

第一節(jié):場(chǎng)景搭建

完成以下場(chǎng)景的搭建

通過(guò)搭建場(chǎng)景,掌握U3D的常用功能,包含(動(dòng)畫(huà)系統(tǒng),地形編輯器,LOD大型場(chǎng)景優(yōu)化等。。。)

放入人物,如何人物動(dòng)起來(lái),放入樹(shù)木,草地,創(chuàng)建地形,優(yōu)化講解(LOD在國(guó)內(nèi)的游戲案例,和平精英)完結(jié)

第二節(jié):A星尋路——移動(dòng)范圍

戰(zhàn)棋游戲的核心功能
1:人物的行走范圍
2:點(diǎn)擊目標(biāo)點(diǎn)時(shí)能夠避開(kāi)障礙物走到目標(biāo)點(diǎn)
3:遇到草地,雪地時(shí)移動(dòng)范圍會(huì)減少
4:遇到水面只有會(huì)游泳的人才能過(guò)去,遇到斷崖時(shí)會(huì)飛的單位才能過(guò)去
5:戰(zhàn)斗模塊的技能范圍(可歸類(lèi)為第一個(gè)問(wèn)題)
6:地圖數(shù)據(jù)的編輯
所以 掌握了前面4個(gè)要點(diǎn)就意味著掌握了戰(zhàn)棋游戲的核心算法!??!


因?yàn)楸竟?jié)課涉及的理論比較多

第一個(gè)問(wèn)題:如何顯示移動(dòng)范圍?

如何讓人物在水中行走?


表示算法可遍歷水節(jié)點(diǎn)


遇到草地,雪地減少移動(dòng)范圍


給開(kāi)發(fā)者話:

在我們這期課程中,我們使用了 A* Pathfinding Project 進(jìn)行開(kāi)發(fā)
A星插件是方便我們快速的制作游戲。
如果只是獨(dú)立制作游戲,那么這款插件足以滿足開(kāi)發(fā)需求

如果是想在國(guó)內(nèi)從事游戲開(kāi)發(fā),還是要學(xué)習(xí)A星的算法和理論,可以在百度查詢(xún)到很多相關(guān)理論資料

那么為要理論能幫助我們找到更好的工作?

因?yàn)槊嬖嚬偈且谝蝗喝酥刑舫錾俨糠秩诉x,一般只有10多分鐘的初試時(shí)間,為了減少招聘成本(時(shí)間)
往往會(huì)看一些指標(biāo),那么算法和理論就是一個(gè)很好的參照物

第三節(jié):尋路移動(dòng)

鼠標(biāo)選中人物后顯示范圍,并且播放準(zhǔn)備動(dòng)畫(huà)

講解 GameCtrl.cs

(導(dǎo)入包gridMeshManagerV2)

選定人物時(shí)點(diǎn)擊地面,進(jìn)行尋路移動(dòng)

多個(gè)人物的情況的細(xì)節(jié)

已經(jīng)選中人物的狀態(tài)下
如果用戶再次點(diǎn)擊的人物就要判斷和當(dāng)前選中的對(duì)象是否一致,如果一致則什么都不做
如果用戶點(diǎn)擊地面則進(jìn)行移動(dòng)
否則
把當(dāng)前人物的指令取消
切換人物后再執(zhí)行準(zhǔn)備指令

細(xì)節(jié):
(實(shí)現(xiàn))地圖路徑節(jié)坐標(biāo)轉(zhuǎn)世界坐標(biāo)
增加一個(gè)跑步動(dòng)作
ABPATH的約束
修改路徑顯示器插件
動(dòng)畫(huà)系統(tǒng)的過(guò)渡參數(shù)連線

第四節(jié):敵人路徑

設(shè)置可操作的單位
選擇人物后
假如是 敵人
則顯示移動(dòng)范圍
否則
人物調(diào)用準(zhǔn)備指令

設(shè)置 移動(dòng)路徑不可以穿過(guò)敵人

實(shí)現(xiàn):
GameDefine
創(chuàng)立門(mén)派

PlayerCtrl
指定門(mén)派

GameCtrl
設(shè)置可控門(mén)派

范圍路徑 加入敵人節(jié)點(diǎn)進(jìn)行約束

第五節(jié):攻擊范圍

在移動(dòng)范圍路徑的基礎(chǔ)上,對(duì)每個(gè)節(jié)點(diǎn)范圍搜索

創(chuàng)建 搜索規(guī)則 (攻擊距離路徑規(guī)則) StrikingRangePath (沒(méi)有約束條件)

計(jì)算之后會(huì)得到,會(huì)得到攻擊范圍

顯示攻擊范圍=攻擊范圍-移動(dòng)范圍

定義玩家攻擊范圍
Player 添加 Attribute(屬性)


第六節(jié):攻擊敵人的路徑

GameCtrl
在選定我方角色的情況下,假如點(diǎn)擊了敵人
判斷是否在攻擊距離內(nèi)
如果是
進(jìn)行攻擊 敵人
否則
跑過(guò)去攻擊 敵人->記錄人物狀態(tài)(這個(gè)時(shí)候不再執(zhí)行鼠標(biāo)點(diǎn)擊邏輯)

為了實(shí)現(xiàn)以上功能會(huì)用到新的知識(shí)點(diǎn)

包含 委托的使用,A星 節(jié)點(diǎn)遍歷規(guī)則約束

第七節(jié):遠(yuǎn)程走位攻擊


在游戲中中,普通攻擊的方式分別大致可以歸納為3種
(法師)0-2格,
(俠客)0-1格,
(弓箭手)1-2格
所以說(shuō)弓箭手不能夠近身攻擊

例如:上邊的圖就是最大范圍為2,最小范圍為1,有效范圍=大范圍-小范圍

弓箭手在點(diǎn)擊敵人時(shí),也要處理好站位問(wèn)題

自動(dòng)理論:
以攻擊點(diǎn)生成最小范圍,移動(dòng)范圍-攻擊最小范圍=走位范圍

然后利用獲取最近點(diǎn)的API,查找規(guī)則是 以敵人為開(kāi)始點(diǎn),約束規(guī)則是 走位范圍

即可求得最適合的位置

我們首先處理移動(dòng)范圍 查找 攻擊節(jié)點(diǎn)的問(wèn)題,如下圖,
右邊的人物顯示移動(dòng)范圍時(shí) 因?yàn)槿宋镎嘉涣艘苿?dòng)范圍,所以不行射程查找


期望的執(zhí)行結(jié)果

先講一下編碼規(guī)范,變量一般要寫(xiě)在文件的前面,因?yàn)槲沂遣捎玫雇品绞綄?xiě),變量是靠IDE生成的, 如果在團(tuán)隊(duì)協(xié)作開(kāi)發(fā)的話務(wù)必按照上述規(guī)則進(jìn)行變量的定義

第八節(jié):攻擊,受擊,反擊,陣亡 邏輯

先演示視頻

需求文檔:
先計(jì)算好總傷害,然后實(shí)現(xiàn)交互傷害動(dòng)畫(huà)效果

播放攻擊動(dòng)畫(huà),且配置好打擊動(dòng)畫(huà)幀

在打擊幀數(shù) 里 播放 敵人受擊動(dòng)畫(huà),且輸出傷害信息

攻擊完畢后,判斷敵人是否 能進(jìn)行還擊

還擊條件:還活著且在 攻擊范圍內(nèi)

第九節(jié)

打擊特效,資源加載 對(duì)象池,事件派發(fā)


顯示特效-> 資源加載->實(shí)例化對(duì)象-> 回收對(duì)象

資源加載 分為兩大類(lèi)-> Resources 和AssetBundle
Resources 開(kāi)發(fā)簡(jiǎn)單,缺點(diǎn)不能做動(dòng)態(tài)更新
AssetBundle 可動(dòng)態(tài)更新,開(kāi)發(fā)難度相對(duì)復(fù)雜

因?yàn)槟壳拔覀冺?xiàng)目還是處在一個(gè)開(kāi)發(fā)階段,首要的目標(biāo)就是快速做出功能
所以采用了 Resources 這種方案

為了便于在后期換成 AssetBundle 進(jìn)行動(dòng)態(tài)更新
我們定義 Resources 的加強(qiáng)類(lèi) ResourcesExt,通過(guò)該類(lèi)進(jìn)行資源管理
這樣的好處是根據(jù)項(xiàng)目進(jìn)度采用不同的加載策略

第十節(jié) UI模塊 -傷害飄血


創(chuàng)建畫(huà)布,制作藝術(shù)字體,制作傷害字體預(yù)制體

U3D藝術(shù)字體的制作文檔文章
https://blog.csdn.net/koljy111/article/details/106071430

在玩家受到傷害時(shí)派發(fā)顯示飄血事件
創(chuàng)建UICtrl , 訂閱 事件 ,在 執(zhí)行方法里 對(duì)象池加載傷害字體預(yù)制體

為了效果更好看,我們用動(dòng)畫(huà)編輯器制作字體放大縮放的效果

第十一節(jié) 血條跟隨顯示+待機(jī)指令

導(dǎo)入素材,配置待機(jī)按鈕在右下角,執(zhí)行待機(jī)結(jié)束后,顯示下一個(gè)玩家

需求整理
選擇玩家是已方單位 且 狀態(tài) 為 Idle 則顯示 待機(jī)UI

在取消選擇時(shí)關(guān)閉待機(jī)UI

點(diǎn)擊待機(jī)命令后設(shè)置玩家狀態(tài)為待機(jī)

各種小細(xì)節(jié)
1:待機(jī)狀態(tài)中選擇人物不顯示待機(jī)UI

2:待機(jī)狀態(tài)下不能執(zhí)行撤銷(xiāo)移動(dòng)和被選擇

3:戰(zhàn)斗中不能執(zhí)行任何指令

4:防止待機(jī)同時(shí)執(zhí)行游戲游戲指令(三維和UI 操作重疊判斷)

5:攻擊結(jié)束后把攻擊者設(shè)置為待機(jī)

6:待機(jī)狀態(tài)下不能移動(dòng)

…這些細(xì)節(jié)的處理根據(jù)變量決定哪些函數(shù)被跳過(guò)或者執(zhí)行,
所以沒(méi)有太多學(xué)習(xí)的價(jià)值
所以這里稍微帶一帶過(guò)

ui層級(jí)配置
Canvas/ActionPanel/wait

Resources/prefab/ui/
hpImage_g
hpImage_r

第十二節(jié) 技能系統(tǒng)



從技能結(jié)構(gòu)分析,執(zhí)行時(shí)機(jī),條件,作用?種類(lèi)多變。

遇到這種需求要最好的應(yīng)對(duì)方法就是《設(shè)計(jì)模式》的封裝思想

–哪里變化就封裝哪里–

最后總結(jié)
抽象封裝的利弊,可以應(yīng)對(duì)變化方便讀表后配置技能,但是維護(hù)和閱讀成本會(huì)比較大

第十三節(jié):被動(dòng)技能-克敵先機(jī)


這節(jié)課講解了技能執(zhí)行條件+行為條件

通過(guò)上節(jié)課和這節(jié)課我們能通過(guò)節(jié)點(diǎn)組合配置出不同的技能

//技能1 [時(shí)機(jī)1][條件1] [作用1]
//技能2 [時(shí)機(jī)2][條件2] [作用2]
//技能3 [時(shí)機(jī)1][條件2] [作用1+作用2+作用n]

//克敵先機(jī) ? ? ? ?//遭受近戰(zhàn)[攻擊] 對(duì)戰(zhàn)開(kāi)始時(shí) 防御+7% ? ? ? ?//遭受近戰(zhàn)[攻擊] 發(fā)動(dòng) [先攻] , 每回合一次 ? ? ? ?skill = new Skill(); ? ? ? ?skill.name = "克敵先機(jī) "; ? ? ? ?//觸發(fā)條件 ?遭受近戰(zhàn) ? ? ? ?//定義一個(gè)戰(zhàn)斗開(kāi)始狀態(tài) ? ? ? ?start_state = skill.addState(); ? ? ? ?start_state.timing = ExecuteTiming.FightingStart; ? ? ? ?//觸發(fā)條件->遭受近戰(zhàn)[攻擊] ? ? ? ?var condition = new AttackedByMelee_Condition(); ? ? ? ?//先攻節(jié)點(diǎn) ? ? ? ?var fastAttackNode = new FastAttack(); ? ? ? ?//成功后執(zhí)行 執(zhí)行執(zhí)行先攻 ? ? ? ?condition.successTodoNodes.Add(fastAttackNode); ? ? ? ?condition.successTodoNodes.Add(add_node); ? ? ? ?start_state.actionNodes.Add(condition); ? ? ? // start_state.actionNodes.Add(add_node); ? ? ? ?//戰(zhàn)斗結(jié)束時(shí) 移除狀態(tài) ? ? ? ?var end_state = skill.addState(); ? ? ? ?end_state.timing = ExecuteTiming.FightingEnd; ? ? ? ?//執(zhí)行compelet 去除加防狀態(tài) ? ? ? ?end_state.actionNodes.Add(condition); ? ? ? ?skillMap.Add(Skill_ID.kedixianji, skill);

第十四節(jié):處理_技能疊加和技能實(shí)例(引用類(lèi)型常見(jiàn)事項(xiàng))

人物2個(gè)被動(dòng)技能 都是增加14%防御
假設(shè)人物 防御=100 ,預(yù)期結(jié)果需要為
100+(10014%)+(10014%)=128
但目前架構(gòu)結(jié)果則為129

因?yàn)榈?次的計(jì)算是在第一次的結(jié)果上進(jìn)行運(yùn)算的,所以需要修改

加入戰(zhàn)斗前的屬性

當(dāng)前屬性=當(dāng)前屬性+(戰(zhàn)前屬性14%)+(戰(zhàn)前屬性14%)

因?yàn)楫?dāng)前人物屬性是引用類(lèi)型class

所以保存戰(zhàn)前屬性不能直接用=號(hào)賦值,因?yàn)橹殿?lèi)型的賦值表示為
戰(zhàn)前屬性是當(dāng)前屬性的引用,內(nèi)存里只有一個(gè)屬性表

所以至少需要2分表才能進(jìn)行計(jì)算,
為屬性編寫(xiě)克隆方法,克隆之后 兩個(gè) 變量都屬于獨(dú)立的存在

第二個(gè)問(wèn)題是2名敵人各配置一個(gè)先攻技能,但卻只發(fā)動(dòng)了一次

解決方法: 為每個(gè)人物單獨(dú)分配的技能實(shí)例

第15節(jié) 技能插槽UI和滑動(dòng)控制鏡頭

第16節(jié) 主動(dòng)技能設(shè)計(jì)-(治療+群體治療)


在制作本節(jié)的內(nèi)容之前,我們要搭建UI,導(dǎo)入技能圖片,字體制作,特效等

以上內(nèi)容相信大家看了之前的課程已經(jīng)掌握制作了方法,這里就把素材包導(dǎo)入,把課程重點(diǎn)放在程序的編碼和實(shí)現(xiàn)



第17節(jié) 技能CD設(shè)計(jì)和回合制邏輯




第十八節(jié)主動(dòng)傷害技能+范圍顯示的實(shí)現(xiàn)(GridMesh)


第十九 行為樹(shù)AI-使用技能攻擊

在游戲開(kāi)發(fā)中,AI的解決方案常見(jiàn)的有2種,行為樹(shù)和狀態(tài)機(jī)

這次我們項(xiàng)目用行為樹(shù)作用AI解決方案


上圖是行為樹(shù)設(shè)計(jì)圖轉(zhuǎn)換成代碼的執(zhí)行過(guò)程,看起來(lái)用直接用代碼實(shí)現(xiàn)更加簡(jiǎn)潔易于理解

從需求簡(jiǎn)單的情況下來(lái)講,硬編碼是最優(yōu)選

但如果項(xiàng)目的AI復(fù)雜程度越高,硬編碼的代碼就會(huì)變得難以閱讀和維護(hù)

行為樹(shù)則是應(yīng)對(duì)AI復(fù)雜度高的項(xiàng)目而設(shè)計(jì)的。靈活度比較高,維護(hù)和拓展性高,加上可視化編輯器工具隨意組合節(jié)點(diǎn),讓AI制作 成為擺放積木一樣簡(jiǎn)單

缺點(diǎn):任何一個(gè)簡(jiǎn)單的操作都必須要使用節(jié)點(diǎn),功能類(lèi)過(guò)多會(huì)出現(xiàn)類(lèi)爆炸

每個(gè)方案各有利弊和他們的適用場(chǎng)景

作為游戲開(kāi)發(fā)者的話,行為樹(shù)是很值得掌握的一種編程思想,所以這里采用行為樹(shù)作為解決方案

我們會(huì)通過(guò)硬編碼逐步迭代到行為樹(shù),課程這樣設(shè)計(jì)是為了從業(yè)務(wù)需求看透行為樹(shù)的誕生設(shè)計(jì)。

因?yàn)?設(shè)計(jì)思想相比代碼細(xì)節(jié) 更能讓開(kāi)發(fā)水平得到質(zhì)變

第二十節(jié) 行為樹(shù)流程控制(Sequence,Selector)

Selector
只要子節(jié)點(diǎn)有一個(gè)返回true,則停止執(zhí)行其它子節(jié)點(diǎn),并且Selector返回true。如果所有子節(jié)點(diǎn)都返回false

Sequence
只要有一個(gè)子節(jié)點(diǎn)返回false,則停止執(zhí)行其它子節(jié)點(diǎn),并且Sequence返回false。
如果所有子節(jié)點(diǎn)都返回true,則Sequence返回true。

以上這兩種設(shè)計(jì)是非常巧妙的
他們的出現(xiàn)可以讓行為樹(shù)通過(guò)不同的節(jié)點(diǎn)組合進(jìn)行流程控制

為行為樹(shù)可配置化的提供了重要的作用

第二十一節(jié) AI策略最優(yōu)解

實(shí)現(xiàn)原理:窮舉出所有情況,對(duì)比所有方案,選擇出最佳的結(jié)果

第二十二節(jié) 不同類(lèi)型AI的權(quán)重分配

作為當(dāng)前行動(dòng)的玩家,他有2個(gè)選擇,進(jìn)攻敵人或是為隊(duì)友治療

進(jìn)攻型:傷害技能>普攻>輔助治療
輔助型:輔助治療>傷害技能>普攻

因?yàn)楸竟?jié)課的編碼細(xì)節(jié)更多的是一個(gè)業(yè)務(wù)邏輯代碼的復(fù)制粘貼,封裝,調(diào)整順序流程
所以采用講解形式進(jìn)行本課程,著重講解設(shè)計(jì)思想

第二十三節(jié) AI托管

第二十四節(jié) 聲音系統(tǒng)+配置讀寫(xiě)

開(kāi)始游戲時(shí)播放背景音樂(lè)

按鈕音效

打擊音效

被動(dòng)技能觸發(fā)音效

搭建聲音控制UI面板

聲音開(kāi)關(guān)配置的讀取和保存

第二十五節(jié) 人物等級(jí)設(shè)定+讀取策劃excel表

今天要制作人物等級(jí)系統(tǒng)


我們收到了數(shù)值策劃的excel表單

可以清晰看到人物每一級(jí)的屬性變化

那么這份表怎么把他具體化到我們的游戲里就是我們這節(jié)課的主要內(nèi)容

因?yàn)橐苿?dòng)平臺(tái)不具備excel表直接讀取功能,所以
第一步:
把表轉(zhuǎn)換成程式可識(shí)別數(shù)據(jù)

一般常用的格式常見(jiàn)有兩種 protobuf,json
xls2protobuf (或者每個(gè)公司內(nèi)部的轉(zhuǎn)表工具)
excel2json (或者每個(gè)公司內(nèi)部的轉(zhuǎn)表工具)

共同點(diǎn)
能把xls表轉(zhuǎn)換成易于程度讀取的數(shù)據(jù)格式
不同點(diǎn)
xls2protobuf 數(shù)據(jù)內(nèi)容會(huì)更小所以網(wǎng)絡(luò)傳輸性能會(huì)更好,搭建環(huán)境相對(duì)繁瑣
excel2json 配置和使用簡(jiǎn)單數(shù)

如果是制作大型網(wǎng)絡(luò)游戲,因?yàn)闀?huì)要和后端打交道,業(yè)內(nèi)一般用 protobuf

這里選用 excel2json ,為了課程方便學(xué)習(xí),更容易梳理開(kāi)發(fā)流程

在學(xué)習(xí)上對(duì)我們開(kāi)發(fā)者而言,無(wú)非是導(dǎo)出excel表所使用的工具和類(lèi)庫(kù)不同

excel2json是github一個(gè)開(kāi)源工具,他可以完成xls導(dǎo)出json格式和數(shù)據(jù)層模型

第二步編寫(xiě)Json反序列化過(guò)程,人物讀取實(shí)體對(duì)象并且更新數(shù)據(jù)

--------------------------------分隔線-------------------------------------

第二十六節(jié) 場(chǎng)景加載和切換(事件清除)

從開(kāi)始頁(yè)面 加載戰(zhàn)斗場(chǎng)景
設(shè)置->返回首頁(yè)->退出戰(zhàn)斗->事件清理->加載開(kāi)始頁(yè)面


這節(jié)課重點(diǎn)的內(nèi)容
全局對(duì)象的設(shè)計(jì),避免 空引用 事件

首頁(yè)和戰(zhàn)斗場(chǎng)景都需要用到聲音模塊

所以聲音模塊需要改寫(xiě)成 只能實(shí)例化一次 ,且不受場(chǎng)景加載銷(xiāo)毀

這樣就能保證聲音模塊是全局唯一對(duì)象

unity3d 教程
unity3d 新手教程
u3d教程
u3d新手教程
unity2019

在線答疑篇

地圖高低起伏怎么處理?
1:人物行走
2:路徑顯示

如何自定義路徑?比如直線,十字,田字?
了解A星的數(shù)據(jù)結(jié)構(gòu)和算法,自定義算法

支持2D嗎?

資源加載支持嗎異步嗎?


如果想深入了解投影原理,可以查閱圖形學(xué)相關(guān)的資料,這是推薦的書(shū)籍或視頻
學(xué)習(xí)時(shí)長(zhǎng)在24小時(shí)左右

在本次課程中我們用了A星插件,該插件的設(shè)計(jì)是建立在A星算法理論之上的
通過(guò)學(xué)過(guò)A星算法我們知道,尋路算法是對(duì)節(jié)點(diǎn)信息進(jìn)行迭代計(jì)算

所以,我們只需要拿到節(jié)點(diǎn)數(shù)據(jù)進(jìn)行算法加工即可得到自定義路徑


自定義路徑

Unity六邊形戰(zhàn)棋


先上效果


對(duì)A星數(shù)據(jù)結(jié)構(gòu)和算法熟系的話,很快就能修改出來(lái)
關(guān)鍵步驟
相鄰節(jié)點(diǎn)改為6個(gè)
偶數(shù)列節(jié)點(diǎn)偏移1.5個(gè)單位


節(jié)點(diǎn)偏移后需要加強(qiáng)空間坐標(biāo)查找地圖坐標(biāo),否則會(huì)出現(xiàn)查找不正確


Unity戰(zhàn)棋卡牌游戲開(kāi)發(fā)教程的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
从化市| 巴马| 梨树县| 新昌县| 司法| 社会| 兰坪| 吕梁市| 化德县| 呼和浩特市| 道孚县| 仲巴县| 昌宁县| 昭觉县| 南丹县| 渝中区| 那坡县| 江门市| 本溪| 察雅县| 屏山县| 绥宁县| 池州市| 宣化县| 扶余县| 密山市| 神池县| 靖远县| 南川市| 南京市| 应用必备| 江阴市| 札达县| 南阳市| 肥乡县| 鲁甸县| 池州市| 平和县| 会泽县| 昔阳县| 崇州市|