-----------------使用UE4制作一个坦克发射子弹效果---------------------------
首先,我们已经制作好了一个可以控制移动的坦克,参照上一篇~
1.在Edit->项目设置->输入
在Action Mappings中添加一个按键事件Fire,设置按键为空格
2.制作一个子弹的蓝图类Bullet,将制作好的子弹拖进去放在0,0,0点。
3.回到坦克的类中,在事件图表中找到我们创建的Fire事件
(Pressed为按下,Released为抬起)
4.在右侧函数栏点击加号,创建一个新的函数goFire并拖进事件图表
5.连接Fire与goFire,我们要让按下Space,调用Fire事件的时候,再去调用goFire函数,然后去goFire函数里实现我们的功能。
6.来到goFire函数,首先我们要在按下Space时产生子弹,所以我们使用SpawnActor
选择从类生成Actor,在Class里选择我们的子弹蓝图类
7.我们要设置子弹生成的位置,子弹应该生成在炮筒的位置,所以我们在组件选项里添加组件
添加一个空的组件Scene,在视口里调整位置放在炮口。
8.回到goFire里,我们需要把Scen的Location和Rotation赋给生成的子弹,所以我们要获取到Scene的Rotation和Location。最终的蓝图结构如下
这样,此时当我们回到关卡中运行,按下Space,就会产生一个子弹。
9.给子弹添加物理效果
在子弹的类默认值中,找到Physices,勾选Simulate Physics
10.此时再运行时,子弹就可以掉下来了,最后我们在给子弹一个速度
因为子弹有物理效果,所以我们需要通过Set Physics Linear Velocity的方法给一个线性速度。
这里,我们需要给子弹一个速度值,然而这个值应该是始终朝着子弹的前方的,所以我们不能直接赋值,我们需要先得到子弹的旋转,再得到子弹向Y轴的坐标,再把这个值赋给速度。
最终的实现蓝图
Speed是我们定义的一个float变量,用来控制子弹飞行的速度。
这样,坦克发射子弹的效果就完成了!