蓝图接口一般搭配射线检测来使用
一、创建蓝图接口
1.在文件夹下,右键选择blueprints中的蓝图接口buleprint interface,创建完成后重命名为Interface。
2.双击打开Interface,在蓝图中右侧我的蓝图面板中,已经存在一个默认的函数,可以更改该函数名称,点击 + 号 创建自己要使用的函数。更改函数名称为InterfaceFunction。
3.选中创建的函数,细节面板中的Inputs及Outputus可以设置函数的输入项及输出项(返回值),使用时,会有属性输入,及输出。不同情况不同使用。(后面使用的是 函数名称为 InterfaceFunction,无输入输出项)
4.输入项及输出项的注意点
在接口函数创建,如果有返回值参数,该函数将不能以事件的形式来使用,只能以函数的形式使用,起到一个封装作用,在值传进来的时候,将值进行封装操作,在传出去。
如果没有返回值参数,无论有没有输入项参数,都可以用事件的形式来使用,起到触发的作用,也可以用函数的形式来使用。
4.函数创建完成后点击编译。(一定要编译,不然可能后续调用接口函数会失败)
二、使用蓝图接口
1.创建蓝图类,在视口中创建一个cube,然后再蓝图类中的工具栏选择类设置,在细节面板的接口项中,点击添加,搜索选择自定义的蓝图接口名称。(这里选择的是创建蓝图接口时蓝图接口的命名(Interface))
2.打开蓝图类中的事件图表,将创建的蓝图接口中的函数,以事件节点的形式进行创建,右键搜索自定义的函数名称(InterfaceFunction)
3.当触发事件时,打印绿色的提示语(也可以克隆多个蓝图类,对每个蓝图类中的打印语句颜色进行更改,这里是在文件夹中克隆蓝图类,而不是一个蓝图类在场景中克隆多个物体。)
4.与射线配合使用,当射线检测到物体时,如果检测到了物体就去调用自定义的函数。蓝图空白处右键搜索 Interface Function节点,会显示有消息的节点可创建。是因为该函数会对物体进行发送消息,如果物体中有该接口事件,则会调用物体中的蓝图类中的事件执行处理,如果没有该接口事件,则不会有任何反应。(如果蓝图类中,只存在函数事件节点,没有执行其他逻辑,并不会因为没有逻辑就不会触发事件响应,事件会响应,只是物体没有任何反应)
5.使用branch节点进行对检测到的物体判断(射线是否检测到了物体)。
5.编译后,运行
我创建了两个蓝图类,并分别调整了颜色
总结:
1蓝图接口是一对多,只需要发送一个信号,碰到的物体就会尝试建立通信。
2.最重要一点就是创建蓝图接口后,想要让物体使用我们自定义的蓝图接口中的函数,就必须在该物体的蓝图类中的 类设置 的接口属性中,Add我们创建的接口,这样才可以在蓝图中以事件的形式使用接口中的函数。
3.注意创建接口函数时的输入项及输出项添加参数后的不同效果:
如果有返回值参数,该函数将不能以事件的形式来使用,只能以函数的形式使用,起到一个封装作用,在值传进来的时候,将值进行封装操作,在传出去。
如果没有返回值参数,无论有没有输入项参数,都可以用事件的形式来使用,起到触发的作用,也可以用函数的形式来使用。
4.步骤分解如下:
创建蓝图接口(Interface)->
双击打开蓝图接口 创建函数(function)->
编译 ->
创建蓝图类->
打开蓝图类在类设置中Add蓝图接口(Interface)->
编译->
在蓝图类中创建function事件节点->
完善执行处理逻辑->
在其他蓝图中完成逻辑,使用function(消息)节点,为了获取到物体后,对该物体发送消息,尝试建立通信,以使物体做出对应的动作。