蓝图类型(9) —— 蓝图接口

简述
蓝图接口,可以实现同类功能的在不同的Actor中表达各自的特点,比如,两个Actor都有在三维空间中变换的功能,在接口中定义一个变换函数SetTransform(),两个Actor通过包含这个接口,并实现各自的变换功能,
新建接口
转到主界面,在内容浏览器中依次  右键 -> Blueprints -> Blueprint Interface创建蓝图接口,命名为BlueInterface

双击BlueInterface,打开蓝图接口

点击Add New或者Functions后面的“+”,添加一个函数,命名为SetTransform,并设置输入输出和函数属性,如下图

实现接口
蓝图接口中的函数只有定义没有实现,我们需要在蓝图类中包含该蓝图接口并实现它的函数
转到主界面,在内容浏览器中依次  右键 -> Blueprints -> Blueprint Class,选择Actor为父类命名为stair,复制stair再创建一个蓝图类,命名为Cube,如图

双击stair,打开蓝图类,给蓝图类添加StaticMesh组件,并设置静态网格为Linear_Stair_StaticMesh。Cube做类似操作,设置静态网格为1M_Cube(当前工程蓝图模板为Third Person),将两个Actor放入关卡中进行实例化

转到stair蓝图类中,选中Class Settings,在DEtails面板的Interfaces部分,点击Add,添加蓝图接口

在蓝图接口列表中可以看到刚才自定义的蓝图接口BlueInterface,还有一些是引擎提供的,这里选择BlueInterface,然后需要实现这个接口中的函数。新建图表,命名为InterfaceGraph,

打开InterfaceGraph图表,右键,输入“蓝图接口”

选择Event SetTransform节点,对接口函数开始实现,我们让stair绕Z轴进行旋转

Cube实现接口功能为向X轴方向移动

调用接口
接口实现后,可以开始使用它们了,在stair和Cube中分别调用SetTransform,使用Tick事件驱动

编译保存,点击play运行

在关卡蓝图中调用接口
打开关卡蓝图,获取蓝图接口节点SetTransform

再获取stair和Cube的实例引用,分别调用SetTransform。记得将蓝图类中的Tick事件删除

编译保存,点击play运行,按“1”键驱动事件

猜你喜欢

转载自blog.csdn.net/niu2212035673/article/details/80216357