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