---1:场景中摆放物件部分:
首先,我们从内容浏览器中拉出一个SM_DOOR

摆放到合适的位置:

接下来给门设置碰撞,让其不能通过。
通过双击进入门的静态网格体,碰撞菜单来生成盒体碰撞,这样门就不可以穿过了:

接下来我们在场景中添加一个盒体触发器:

设置大小和位置如图,把门夹在中间。

这样,就可以通过触发器来达到捕捉到角色走到门前或门后的事件了。
---2 关卡蓝图编写部分:

在关卡蓝图中编辑本触发行为:
右键点击空白,给盒子两个添加事件 开始重叠和结束重叠:

在关卡中选中门,在蓝图中点击创建引用(蓝图会自动联想到选中的对象,很友善~):

通过SM_Door引用的针脚拉出来,输入设置Actor旋转。

我们把XYZ分开:

那么现在的蓝图就是:

可是我们播放游戏,走到门口触发盒子缺没有反应,看输出有提示如下:
如果需要移动,....SM_Door_2:StaticMeshComponent0的移动性必须为“可移动”。
我们回到关卡中,选择门设置为可移动~

那么现在我走到门口就会看到门被打开了,只是很快看起来好别扭:

接下来我们做一个时间轴,让他开门和关门有过度效果。
先有时间轴:

再双击进入制作一个浮点数轨迹,点F,
然后添加2个关键帧
0,-90(0秒从开始的Z轴-90度)
2, 0(到2秒旋转到Z轴0度)
记住长度设置为2,总时间就为2秒。
再设置自动得到曲线。如下图:


下面我们把时间轴加入进来,如图:

整个流程为:碰撞盒子检测到重叠事件,就会执行时间轴。时间轴就会更新SM_Door的Z轴,通过轨迹也就是我们刚才编辑的曲线来。在2秒内把门的Z轴从-90度修改到0度。也就是我的关卡中门的关闭到打开的角度。
再通过盒子的离开重叠事件,让时间轴控制门的Z轴反向操作,也就是关门。



至此,自动开关门的蓝图就完成了。
网友评论