UE4学习笔记 FPS游戏制作11 把枪提出为对象
之前的项目里枪直接作为玩家的子物体,开枪方法直接由玩家调用,不好
创建枪的蓝图
新建一个Rifle蓝图,父类选择为Acotor
指定mesh为步枪的mesh
新建一个Arrow,改名为Muzzle,调整位置和方向到枪口
修改Rifle蓝图
将人物蓝图里的射击方法移动到枪的蓝图里,并新建好对应的参数
GunOwner:枪的持有者,也就是玩家角色
射击方法迁移过来后,由于原来蓝图中要使用角色蓝图进行例如播放停止射击动画,查找玩家方向,查找摄像机等行为,所以需要由GunOwner提供角色引用,赋值给原来的节点,如下展示
修改FPPShooter蓝图
原来的角色蓝图里,只需要保留开枪和停止开枪,而且内部只需要调用枪的方法
玩家装备枪
删除原来玩家下的枪模型和Muzzle
添加一个ChildActor组件,ChildActor是可以在编辑时动态修改,需要运行时动态修改请参考下一篇文章
指定组件的套接字为武器的插槽
选择子Actor类为Rifle,调整武器的位置
为参数赋值
现在玩家已经装备了枪,但是玩家的Gun属性和Rifle蓝图的GunOwner属性还没有赋值
打开玩家蓝图的事件图表,在开始事件里为各个属性赋值