在第二期我制作了一个可以由玩家控制开关的简易门,传送门:UE4学习之路【二】制作一个简易门(上),是通过在门的蓝图类里使用Get Player Controller和Enable Input来开启玩家输入,操控门的开关。
接触了蓝图接口之后,我觉得可以用蓝图接口的方式重现简易门的控制,接下来我们来具体实现
创建门蓝图类和蓝图接口
首先我们像上次一样创建一个门蓝图类,并将门添加到世界地图里面,然后创建一个蓝图接口,并在里面添加一个无参无返回值的函数CanOpenDoor用来控制事件的触发
我们在Door的Class Settings里面添加创建的蓝图接口,接着编辑蓝图实现开关门的具体过程,时间轴的设置方法第二期里有
建立Door和Third Person Character的通信
首先我们在Third Person Character里添加一个Door类型的变量door,它的默认值是NULL,所以我们在后续操作之前需要建立我们的Door和Third Person Character的通信。
接着我们在角色进入盒子触发器的时候,建立Door和Third Person Character的通信,将Door自身引用传递给Third Person Character里去,对里面的door变量进行一个赋值操作,在角色离开盒子触发器的时候断开通信,也就是给Third Person Character传入一个空值
最后我们在Third Person Character蓝图里编辑当变量door有效时,玩家按F调用接口的CanOpenDoor事件来进入坦克,哦不是,来控制门的开关。
至此,使用蓝图接口来重现简易门的开关就完成了。