本项目同步上传于github和coding上,国内读者可以通过在coding下载项目。也欢迎你加入我的UE4学习交流QQ群:872537977。如果你喜欢我写的文章,也希望你点赞、收藏、转发。谢谢!
github地址:https://github.com/Liweimin0512/uRPG
coding地址:https://git.dev.tencent.com/JeremyBrett/uRPG.git
我在开始写开发日记之前,曾经尝试制作不同的角色(或者说我想做一个MOBA游戏),这个想法在我写开发日志之后被搁置了,但是之前的一些美术资源我没有删除。想了想,不如就做一个选人界面吧。
数据准备
与上一节中的ItemData类似,这里我们将所有Character保存在数据表中,所以首先创建一个结构图,取名为CharacterData
还有一个需要注意的就是,既然需要选人,那么就没有默认角色这回事了,在GameMode中需要改一下。
选人界面UI设计
新建一个用户界面,取名为UMG_SelectCharacter
。我们采用极简风格的美术设计,设计的UI很简单美观,如下图所示
创建UI
这里我们假设游戏开始时候直接选择角色,那么这个创建UI的工作交给GameMode似乎更合适。这里我们在BP_GameMode中添加一处逻辑。选人按钮响应事件
回到UMG_SelectCharacter
,这里我们思考一下点击按钮时候做的两件事,其1就是创建角色,并且将这个UI界面干掉。其中创建角色的逻辑应该不止在此处使用,比如当我们角色死亡复活时,亦或者传送时候,应该都需要用到,所以依然放在GameMode中。
Character改动
BP_CharacterBase
最主要的改动是添加了一个变量ChaName
,这个变量需要设置为在生成时显示的,方便调用
SpawnCharacter
方法。而
SpawnCharacter
主要是根据数据生成Actor,这里主要是对Mesh和动画蓝图的设置,之后会继续扩展。通过ChaName查找到数据表中对应的行,然后将数据设置上,就完事了,很简单,这里就不详述了。
创建角色逻辑
创建角色需要传入角色名,通过角色名Spawn Actor
,选择“BP_CharacterBase”并将角色名传递过去,位置我们直接写死。成功创建之后,就是将Controller和Character建立起联系,这里比较重要的节点就是Possess,就是它实现的控制器对不同角色之间的切换。
可以参考在蓝图中支配Pawn。
测试
现在,各模块之间算是各司其职,不同的方法根据定位不同也分别添加在了不同的模块中。让我们运行一下,完美。需要说明的是,目前剑士这个角色还是有问题的,之后会在专门的文章中介绍。这里就不多谈了。
下集预告
下一期,我们来研究一下掉落物的拾取,背包系统的实现。