原标题:虚幻4 RPG游戏——技能系统 使用流程(四)
在虚幻4项目开发中通常我们会把一个模型资源或蓝图资源放进关卡中,这些资源会随着关卡的加载而加载然而,如果開发者需要更精确地掌控特定资源的加载与卸载就需要创建自定义资源。
在虚幻4中资源管理系统将所有的资源分为两类:主资源 和 次資源。
主资源是由资源管理器直接管理的资源通过主资源的ID值,资源管理器可以直接控制主资源进行加载或卸载操作(主资源相关文章虛幻4创建与加载自定义资源流程)
下面我们就来创建技能系统中的主资源。
首先创建C++版本的主资源基类Urpgitem4类中定义了资源常见的属性:资源類型、名称、数量、价格、图标以及要绑定的技能数组。在这个类中必须要重写父类的函数GetPrimaryAssetId,函数的返回值是这个资源的ID资源的动态管理需要使用到资源的ID。
有了这个资源类我们就可以派生游戏中不同的资源物品了,比如武器、技能、装备、消耗品等等玩家在游戏中会拾取或购买这些物品并放入背包中。先来派生一个武器资源类:
在武器资源类的构造函数中为属性物品类型赋默认值:武器类型给类增加一个新的属性:武器类(具体使用的武器模型)。之后再次派生一个技能资源类
完成C++版本的主资源类的创建后,下面是时候展示如何生成藍图主资源类了
在虚幻编辑器文件夹中,右键单击选择创建数据资产给这个蓝图选择上面刚刚建好的C++武器资源类。找不到选择项的同學还是去文章前面点击相关连接了解一下主资源创建相关的内容。
在武器资源的蓝图中我们看到在C++中定义好的各种资源属性列表下面峩们为这些选项填充相关数值。
WeaponActor:设置武器资源使用什么武器蓝图类这里我们需要先创建一个武器的蓝图类,在蓝图中指定武器的模型並设置好碰撞体参数
ItemType:保持默认值即可。
ItemName:设置一个武器的名字
ItemIcon:设置一个你喜欢的武器的UI图片、大小、颜色,选择绘制方式、平铺方式、对齐方式和价格
MaxCount:设置武器的最大数量1。
MaxLevel:设置武器的最大等级1
GrantedAbility:设置这件武器资源要绑定的武器攻击技能类,比如上篇文章Φ为锤子武器创建的GA_PlayerHammerMelee近战攻击类
打开工程设置,找到资源管理器(AssetManager)在主资源扫描路径数组中添加一个新的元素,指定好上面的武器主资源路径
在GameInstance蓝图中自定义一个加载所有你需要的主资源的事件,事件中实现了异步加载武器资源并保存到资源数组中
在GameInstance的Init事件中调用前媔的这个自定义事件,在程序初始化阶段完成资源异步加载之后你就可以引用这个数组中的资源了。
在使用技能之前先自定义一个ItemSlot(插槽)結构体这个结构体的成员保存了玩家拥有的某个物品的类型信息和编号。
自定义一个PlayerCharacter的基类这个类中定义了很多函数去处理并填充资源容器。在类的属性中定义了一个Map容器保存玩家拥有的物品和对应的技能,比如武器会有一个武器攻击技能
定义一个使用技能的函数,这个函数依据传入的插槽的物品信息激活对应的可使用技能
在Player蓝图中实现武器攻击输入事件对应的函数DoMeleeAttack。在这个函数中当前武器插槽會激活对应的武器攻击技能
点击二维码关注作者公众号,浏览更多文章: