您的位置:首页 > 产品设计 > UI/UE

UE4蓝图发射子弹

2017-03-09 00:03 1226 查看
-----------------使用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变量,用来控制子弹飞行的速度。

这样,坦克发射子弹的效果就完成了!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息