UE4蓝图学习01
01 开关门互动实现
1.添加门的碰撞
把 LightSource 和 SkyLight 设置为可移动。在StartContent->Props里找到SM_Door,然后将其拖拽到游戏场景中,运行游戏,发现可以直接穿过门,于是需要添加门的碰撞。
双击SM_Door模型,进入模型界面,因为门的结构比较简单,所以在碰撞->添加盒体碰撞即可,运用变换工具使盒体的厚度与门基本相同。
然后再运行,发现人物穿不过去了,添加门的碰撞成功。
2.添加盒体触发器
在放置actor->基础里将盒体触发器拖拽出来,调整成合适的大小置于门附近。
3.开关门的实现
**关卡蓝图:**互动逻辑写到关卡蓝图中,场景的互动写到关卡蓝图中。
**事件:**事件告诉系统什么时候关门。
- 要将SM_Door模型设置为可移动。
- 选中SM_Door模型-》蓝图-》打开关卡蓝图,右键创建一个对SM_Door的引用。
- 选中其中一个TriggerBox,要创建一个进入触发器的行为,和一个离开触发器的行为。所以我们要在事件图表右键碰撞,创建一个进入的碰撞(OnActorBeginOverlap)和一个离开的碰撞(OnActorEndOverlap)。
- 因为我们要实现门的旋转,所以我们右键,创建一个设置Actor旋转,将SM_Door拖入到设置Actor旋转中,因为要让门绕着朝上的轴旋转,所以我们选择让门旋转90度,Z轴改为90°,此时将进入的碰撞(OnActorBeginOverlap)的执行拖入设置Actor旋转的执行,然后编译,运行的时候发现可以开了,但是是瞬间开启的,特别生硬,这时候我们需要添加时间轴。
5.右键新建一个时间轴,新建一个函数f,在第0秒插入关键帧,值为0,在第2秒插入关键帧,值为90,右键关键帧插值选自动,就可以创建一个速度开始慢后快最后再慢的函数,这样能够比较真实的模拟开关门,然后将长度设置为2.将New Rotation分割结构体引脚。然后就可以连接引脚了,如下图所示:
然后进行编译,运行,