开关门
这里要用到一个素材就是wooden_door

那么要去哪里下载呢?首先,打开内容策划菜单->点击"添加"->选择"fab",打开后点击"搜索"输入"wooden_door"并找到wooden_door

点击"添加到项目",如果会经常使用这个素材可以添加到"库"

之后Fab的东西就会出现在菜单里面

我们开始实现旋转门的功能,首先先创建一个资料夹,再创建一个Actor

将其命名为"door"

进入资料夹后"点击右键"->创建一个"Actor"

点击后命名为BP_Door

进入蓝图后在"组件"那一栏添加"静态网格体组件"

将其重命名为"Door"

再添加一个"静态网格体组件"并命名为"DoorFrame"

添加完后,将"Door"和"DoorFrame"的静态网路体分别选择"Door"和"DoorFrame"


添加完后我们看到两个的模型是错位的,我们按"W"之后来进行调整
这是调整完后的样子:

我们再添加一个"BoxCollision"

添加后找到"形状"->"合体范围",往左拖拽是缩小,往右拖拽是增加

调整后的碰撞箱

接下来往下找到"事件"

点击"组件开始重叠时",之后会在"事件图表"出现

既然门打开后门就会关上,因此还需要再添加"事件结束重叠时"

之后我们点击右键输入"time line"点击"添加时间轴"


我们点击时间轴,点进来后画面是这样子的

点击"添加轨道"->选择"添加浮点型轨道"

点击"右键"->选择"添加关键帧到CurveFloat_0"

之后把"时间"和"值"都设为0

之后再添加一个"添加关键帧到CurveFloat_0",将时间设为1,值为90,设定完后是这样的

还有一个地方要说!我们可以将长度设为1

之后我们输入"set rotation"->选择"设置相对旋转(Door)"

选择之后是这样的:

我们把他链接起来

为什么要将"组件结束重叠时"链接到reverse的节点呢?
当我们把门打开后,我们需要门会自动复归,而Reverse就会在你穿过门之后自动复归
接下来我们将update链接到设置相对旋转函数,之后对着"New Rotation"点击右键->选择"分割结构体引脚",之后将"新建轨道0"链接到Z轴


之就可以实现开门功能了,因为示例不方便放出来,所以只能自己测试
补充
一开始玩家在使用门框的时候会怎么走都走不过去,这要怎么办?
首先在内容侧滑菜单中找到"Fab",并点击"DoorFrame"

点进去之后界面是这样

之后在右上角找到光照那一栏

点击并选择"玩家碰撞",画面是这样的

这个是我设置好的画面,大家一开始看到的时候是一个实心墙
之后在左上角找到并点击"碰撞"

找到"自动凸包碰撞"

点击之后右下角会出现"凸包分解"的界面

直接点击应用就行,之后就会出现这样的画面

流程控制节点
常用的控制节点

分支

分支的原理和C++中的if/else一样,如果为真则输出"True",假则为"False"
我们先点击右键->输入"调试键F"

之后就会出现这个方块

接下来我们来测试分支这个节点,首先我们将"调试键F"接到分支上

我们在左侧"变量"一栏点击"添加变量",我们把他命名为"bool"并将"bool"拖拽出来

之后将"bool"接到"分支"

之后后面接上输出字符串

我们来运行看看

我们看到显示为真
补充下,我们先点击布尔这个节点

我们看到"细节",找到"默认值"将"bool"的框打勾

如果不打勾输出则为"假"


Flip Flop(触发器)

Flip Flop是和逻辑门中的触发器是一样的,当我按下F键时,一次会显示为真一次显示为假

我们看到还有一个"is A"的针脚,我们再新增一个"输出字符串"将"is A"和它链接起来

就会出现上面图片的"true"和"false"
Do Once

Do Once是触发时只会执行一次,我们先进行链接

我们来运行

可当我们再次运行的时候我们就不会运行了,我们看到"Do Once"输入端有一个"Reset",我们先将"调试键1"接上

我们再来运行

当我们再按一次时就不会显示"Hello"了

我们刚才在蓝图的"Reset"接上了"调试键1",我们再次按一次"1"的时候它就会再次显示

序列

序列的逻辑是,点击一次按顺序触发多个启动分支

我们先来运行一次

我们看到它运行了很多分支,如果还需要更多分支可以点击"添加引脚"

延迟

延迟的意思就是延迟输出,我们将"Duration"设置为1.0,它就会延迟一秒输出

我们来运行看看

For Loop(for循环)

For Loop和C++中的for循环的逻辑一模一样,我们可以看到输入端有Frist index和Last index,对应的是for循环的val = 0和val <= x

我们来运行看看

我们看到它显示"执行"10次,第11次的时候显示了"执行完毕"
Gate(状态门)

Gate是蓝图中的"门控节点"是用于管控输入/输出状态,它是透过Open、Close和Toggle来切换状态的
我们先把Open 、Close、Toggle分别链接到"调试键1"、"调试键2"、"调试键3"

我们来运行一下

我们按下"2"并且再按一次

我们发现就不会执行了,我们再按下"1"再执行一次

我们按一次"3"试试

我们看到并没有执行,我们再按"3"一次

我们发现它又开始执行了
这里就是常用的流程控制节点