效果
注意看场景中有一把机枪,只要我们控制的坦克进入机枪感知范围,机枪就会自动锁定坦克的位置并开火,击中坦克时产生击中音效和粒子效果。
步骤
1. 首先创建一个Actor类蓝图,即自动机枪,只包括一个静态网格体和一个球形碰撞组件,球形碰撞组件就当做机枪的感知范围
当球形碰撞组件范围内出现指定的Actor,就设置布尔变量“isShoot”为True,然后执行自定瞄准事件
自动瞄准事件如下,每0.2s执行一次,将返回的句柄提升为变量,然后获取玩家控制的actor位置以及机枪自身的位置
计算出机枪需要旋转的角度
当组件结束重叠时,设置“isShoot”为False,然后清除定时器柄
在事件开始运行时,就执行开火
开火逻辑如下,当“isShoot”为True时才开火,然后在插槽处生成子弹
生成枪口火焰粒子特效
如果希望模拟子弹击中坦克发出金属撞击声和粒子特效
我们首先保证坦克的碰撞预设为“BlockAllDynamic”
设置子弹的碰撞预设为“OverlapDynamic”,如果是“BlockAll”的话,子弹击中坦克就会把坦克击飞,这不符合常理(不知道怎样减少击中坦克时的作用力)
子弹击中坦克时生成粒子特效和击中音效
最终效果如文章开头所示。