本項(xiàng)目同步上傳于github和coding上肢簿,國內(nèi)讀者可以通過在coding下載項(xiàng)目。也歡迎你加入我的UE4學(xué)習(xí)交流QQ群:872537977厕宗。如果你喜歡我寫的文章彻亲,也希望你點(diǎn)贊、收藏翻斟、轉(zhuǎn)發(fā)逾礁。謝謝!
github地址:https://github.com/Liweimin0512/uRPG
coding地址:https://git.dev.tencent.com/JeremyBrett/uRPG.git
我在開始寫開發(fā)日記之前访惜,曾經(jīng)嘗試制作不同的角色(或者說我想做一個MOBA游戲)嘹履,這個想法在我寫開發(fā)日志之后被擱置了,但是之前的一些美術(shù)資源我沒有刪除债热。想了想砾嫉,不如就做一個選人界面吧。
數(shù)據(jù)準(zhǔn)備
與上一節(jié)中的ItemData類似窒篱,這里我們將所有Character保存在數(shù)據(jù)表中焕刮,所以首先創(chuàng)建一個結(jié)構(gòu)圖,取名為CharacterData
還有一個需要注意的就是霍转,既然需要選人,那么就沒有默認(rèn)角色這回事了一汽,在GameMode中需要改一下避消。
選人界面UI設(shè)計(jì)
新建一個用戶界面,取名為UMG_SelectCharacter
召夹。我們采用極簡風(fēng)格的美術(shù)設(shè)計(jì)岩喷,設(shè)計(jì)的UI很簡單美觀,如下圖所示
創(chuàng)建UI
這里我們假設(shè)游戲開始時候直接選擇角色监憎,那么這個創(chuàng)建UI的工作交給GameMode似乎更合適纱意。這里我們在BP_GameMode中添加一處邏輯。選人按鈕響應(yīng)事件
回到UMG_SelectCharacter
鲸阔,這里我們思考一下點(diǎn)擊按鈕時候做的兩件事偷霉,其1就是創(chuàng)建角色迄委,并且將這個UI界面干掉。其中創(chuàng)建角色的邏輯應(yīng)該不止在此處使用类少,比如當(dāng)我們角色死亡復(fù)活時叙身,亦或者傳送時候,應(yīng)該都需要用到硫狞,所以依然放在GameMode中信轿。
Character改動
BP_CharacterBase
最主要的改動是添加了一個變量ChaName
,這個變量需要設(shè)置為在生成時顯示的残吩,方便調(diào)用
SpawnCharacter
方法定罢。而
SpawnCharacter
主要是根據(jù)數(shù)據(jù)生成Actor,這里主要是對Mesh和動畫藍(lán)圖的設(shè)置旁瘫,之后會繼續(xù)擴(kuò)展祖凫。通過ChaName查找到數(shù)據(jù)表中對應(yīng)的行,然后將數(shù)據(jù)設(shè)置上酬凳,就完事了惠况,很簡單,這里就不詳述了宁仔。
創(chuàng)建角色邏輯
創(chuàng)建角色需要傳入角色名稠屠,通過角色名Spawn Actor
,選擇“BP_CharacterBase”并將角色名傳遞過去翎苫,位置我們直接寫死权埠。成功創(chuàng)建之后,就是將Controller和Character建立起聯(lián)系煎谍,這里比較重要的節(jié)點(diǎn)就是Possess攘蔽,就是它實(shí)現(xiàn)的控制器對不同角色之間的切換。
可以參考在藍(lán)圖中支配Pawn呐粘。
測試
現(xiàn)在,各模塊之間算是各司其職作岖,不同的方法根據(jù)定位不同也分別添加在了不同的模塊中唆垃。讓我們運(yùn)行一下,完美痘儡。需要說明的是辕万,目前劍士這個角色還是有問題的,之后會在專門的文章中介紹。這里就不多談了渐尿。
下集預(yù)告
下一期醉途,我們來研究一下掉落物的拾取,背包系統(tǒng)的實(shí)現(xiàn)涡戳。