步骤
新建一个C++类,父类为Actor,命名为“ASMagicProjectile”
在“ASMagicProjectile.h”中添加如下代码:
在“ASMagicProjectile.cpp”中添加如下代码:
编译后在虚幻编辑器中新建一个蓝图,选择父类为我们刚创建的C++类“ASMagicProjectile”
这里命名为“BP_MagicProjectile”
打开“BP_MagicProjectile”,选中继承的粒子系统组件,模板选择“P_Gideon_Primary_Projectile”
接下来我们希望按下某个键后,就能让角色产生这个蓝图,就像释放技能一样。
在“SCharacter.h”中申明一个基础攻击函数
在“SCharacter.cpp”中实现这个方法
再添加一个操作映射
再在头文件中添加对“ProjectileClass”的定义
编译后,在项目设置中添加操作映射
打开“PlayerCharacter”,在类默认值中,设置“ProjectileClass”为“BP_MagicProjectile”
此时我们运行游戏点击鼠标左键已经能够产生“BP_MagicProjectile”,如下所示
如果觉得抛射距离太近可以增加抛射速度
现在产生这个抛射物是从“PlayerCharacter”的中心产生的,我们希望从这个角色的手中产生。
打开骨骼网格体,找到角色右手上的插槽为“Muzzle_01”,我们准备在这个插槽的位置来生成抛射物。
在“SCharacter.cpp”中添加如下代码:
编译后再次运行可以看到此时抛射物就从角色的手中产生了。