拖入一个桌子,发现桌子是悬浮的
这是因为桌子并没有设置物理特性,勾上这个,桌子就具备了物理特性。
这里可以改变桌子的重量,越轻,小白人撞桌子撞得越远。越重,小白人就撞不动了。
如果不启用重力,可以去掉这个勾,然后桌子就浮在空中了
有的物体没有办法勾选物理属性,如这个阶梯模型。
此时我们让双击它来进入编辑界面
点击简单碰撞,发现什么都没有。
而桌子勾选简单碰撞后就有绿色的边框。
怎样让台阶有碰撞呢?
方法1:直接选复杂碰撞
设置碰撞复杂度。
此时就可以设置物理模拟了
这个方法太烧性能,过于昂贵。
方法2:赋一个简单的碰撞上去
添加盒体碰撞
这样不妥,因为对于游戏来说,他就成了一个方块。
这时候该怎么办呢?
笨办法,弄三个碰撞盒子进行拼接。
这种做法麻烦,但是便宜。
然后我们搭一个楼梯。
给房顶加一个材质
---------------------------------------------------------------------------------------------------------------
现在我们头顶生成一个火球,可以攻击物体。
添加一个装蓝图的文件夹
新建蓝图actor
先添加一个球体组件
缩小火球
将新手包的火焰拖到球上
把火变大
在小白人蓝图里,开始写召唤火球的功能。按Z键,召唤到头顶上。
添加Z键盘事件触发从类生成actor节点。
现在设置生成的位置(小白人的头上)
测试,这样生成的火球在脚下。
我们需要改变位置向量的Z轴。(x,y都不需要改变,提高z值就行了)
所以我们将位置向量拆开
初步设定z+200,加完之后,xyz再合并成一个向量。
测试
现在小球还不能动,我们为小球设置初始的速度
设置速度向量
测试之后,小球并没有动
因为小球还没有物理特性,有物理特性才会有速度。
测试:现在生成的小球可以动力。
现在设置小球运动的初始方向,该方向应该与小白人的朝向一致。
获得朝向
给朝向向量乘800,作为速度向量赋值。
测试:小球往其他方向飞了。
这样修改就可以了
下面解决细节问题,发射出去的火球禁止旋转(翻滚)
在小球那里锁定旋转
打在某个物体上,火球就消失。
在小球蓝图里,添加撞击蓝图事件
添加销毁节点
这里打上勾
测试成功。
火球消失的过程太突兀了,增加一个爆炸效果。
创建一个actor,命名为Explosion
我们把爆炸拖到Explosion actor里
逻辑:当小球消失之前,得到爆炸actor在小球的位置上。
测试成功。