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

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

Unity 游戲中的戰(zhàn)斗系統(tǒng)的架構與設計

2021-10-28 14:08 作者:博毅創(chuàng)為  | 我要投稿

很多剛開始做游戲的小伙伴感覺戰(zhàn)斗系統(tǒng)是一個比較麻煩的部分,不知道如何設計,角色很多,職業(yè)很多,技能有好幾種,還有裝備相關的東西。今天這篇文章詳細的講解一個戰(zhàn)斗系統(tǒng)應該如何架構與設計,你看完并搞懂它,戰(zhàn)斗系統(tǒng)的架構與設計對你來說再也沒有難度了。首先我們先來上一張架構圖:

如圖,我們把整個的戰(zhàn)斗系統(tǒng)分成了3個層次,分別為功能組件層, 策略層, 行為決策層。

我們的戰(zhàn)斗系統(tǒng)將圍繞這這3個層次參考設計,接下來我們具體的分析每一層是做什么的,哪些代碼應該放到哪一層,如何實現(xiàn)。

1: 功能組件層

功能組件層顧名思義就是實現(xiàn)某個具體功能的組件,如

角色移動組件: 控制角色的移動與行走;

動畫狀態(tài)機組件: 控制角色的狀態(tài)與動畫切換;

攻擊傷害計算組件: 提供機制,按照技能的特性來提供計算傷害的時機與結束狀態(tài)重置的時機,不提供具體的傷害計算的方法,只提供計算的機制;

尋路導航組件: 控制角色的尋路與行走;

……

這個層次的組件代碼在不同游戲里面大部分都可以重用??偨Y一個點就是凡是戰(zhàn)斗中屬于角色的功能組件的就實現(xiàn)在這個層次,同時這個層次只提供機制,不提供具體的策略。什么叫提供機制不提供策略,舉個具體的例子,比如導航組件,設計的時候就只要按照路徑去走就可以了,具體路徑是哪些,怎么來。它不關心。又如動畫狀態(tài)機組件,只提供功能,根據(jù)用戶給的狀態(tài)來播放正確的動畫就可以了,不大去關心什么時候用什么狀態(tài),這個就是功能層的只提供機制不提供具體策略。

2: 行為策略層

看戰(zhàn)斗的行為策略層如何設計之前先看下戰(zhàn)斗單元,常見的戰(zhàn)斗單元有:玩家, Boss, NPC,小怪等。每個戰(zhàn)斗單元都會有自己的戰(zhàn)斗策略,比如,攻擊,行走等。在這一層,我們主要實現(xiàn)怪物角色的具體的一個戰(zhàn)斗的策略,比如玩家具體實現(xiàn)攻擊,技能的具體策略。比如敵人小怪,提供搜索玩家的策略(具體如何搜索),提供發(fā)起攻擊的策略(具體如何攻擊,每種攻擊一種策略,并封裝成接口),提供發(fā)起追擊的策略(具體如何追擊,封裝成接口)。

我們可以把戰(zhàn)斗單元做成一個基類,實現(xiàn)一些通用的策略,比如HP生命值, Attack攻擊力, Define防御力, 數(shù)據(jù)配置表加載,防御力攻擊力計算等。然后具體的戰(zhàn)斗單元我們繼承自這個基類,比如玩家Player, 怪物Boss, 小怪Monest等。這些戰(zhàn)斗單元實現(xiàn)具體的各個策略,每個策略的數(shù)據(jù)就來自策劃提供的數(shù)據(jù)配置表。

3 操作決策層

什么時候要追擊,什么時候要攻擊,什么時候放技能,這個就屬于行為操作決策。一般常用的操作決策有玩家UI操作(單機), 網(wǎng)絡事件操作, AI操作決策(單機或服務端上的AI決策),固定操作序列等。我們把決定用哪些策略來戰(zhàn)斗放到到操作決策層。比如玩家有一個UI攻擊操作,UI操作層就會調用玩家決策層接口來實現(xiàn)這個攻擊,決策層,就會去找對應的目標,調用功能組件發(fā)起攻擊。AI操作決策層,根據(jù)環(huán)境決定做什么,得到具體的操作,然后調用策略層的接口來實行具體的功能。

今天給大家分享了戰(zhàn)斗的三層設計,我結合這個設計也做了一個視頻教程《Unity如何架構設計戰(zhàn)斗系統(tǒng)》與戰(zhàn)斗代碼demo,方便大家具體學習與實踐。

今天的分享就到這里,關注我,可以獲取一些更多的Unity 游戲開發(fā)相關的技術講解和課程。


更多教學資料:https://bycwedu.vipwan.cn/promotion_channels/829468798??

Unity 游戲中的戰(zhàn)斗系統(tǒng)的架構與設計的評論 (共 條)

分享到微博請遵守國家法律
青铜峡市| 静安区| 漾濞| 荣昌县| 凤冈县| 祁门县| 鹤壁市| 平阴县| 蒙自县| 宁晋县| 南漳县| 仙桃市| 高唐县| 江孜县| 习水县| 江北区| 巫山县| 天长市| 梁河县| 从江县| 贵州省| 井冈山市| 张家界市| 英德市| 日喀则市| 望奎县| 响水县| 盖州市| 望城县| 土默特右旗| 翼城县| 富阳市| 衡南县| 龙州县| 虹口区| 大埔区| 洛南县| 叶城县| 自贡市| 红原县| 左贡县|