---1:场景中摆放物件部分:
首先,我们从内容浏览器中拉出一个SM_DOOR
image.png
摆放到合适的位置:
image.png
接下来给门设置碰撞,让其不能通过。
通过双击进入门的静态网格体,碰撞菜单来生成盒体碰撞,这样门就不可以穿过了:
image.png
接下来我们在场景中添加一个盒体触发器:
image.png
设置大小和位置如图,把门夹在中间。
image.png
这样,就可以通过触发器来达到捕捉到角色走到门前或门后的事件了。
---2 关卡蓝图编写部分:
image.png
在关卡蓝图中编辑本触发行为:
右键点击空白,给盒子两个添加事件 开始重叠和结束重叠:
image.png
在关卡中选中门,在蓝图中点击创建引用(蓝图会自动联想到选中的对象,很友善~):
image.png
通过SM_Door引用的针脚拉出来,输入设置Actor旋转。
image.png
我们把XYZ分开:
image.png
那么现在的蓝图就是:
image.png
可是我们播放游戏,走到门口触发盒子缺没有反应,看输出有提示如下:
如果需要移动,....SM_Door_2:StaticMeshComponent0的移动性必须为“可移动”。
我们回到关卡中,选择门设置为可移动~
image.png
那么现在我走到门口就会看到门被打开了,只是很快看起来好别扭:
image.png
接下来我们做一个时间轴,让他开门和关门有过度效果。
先有时间轴:
image.png
再双击进入制作一个浮点数轨迹,点F,
然后添加2个关键帧
0,-90(0秒从开始的Z轴-90度)
2, 0(到2秒旋转到Z轴0度)
记住长度设置为2,总时间就为2秒。
再设置自动得到曲线。如下图:
image.png
image.png
下面我们把时间轴加入进来,如图:
image.png
整个流程为:碰撞盒子检测到重叠事件,就会执行时间轴。时间轴就会更新SM_Door的Z轴,通过轨迹也就是我们刚才编辑的曲线来。在2秒内把门的Z轴从-90度修改到0度。也就是我的关卡中门的关闭到打开的角度。
再通过盒子的离开重叠事件,让时间轴控制门的Z轴反向操作,也就是关门。
image.png
image.png
image.png
至此,自动开关门的蓝图就完成了。