蓝图接口

声明函数以定义蓝图之间接口的蓝图。

Windows
MacOS
Linux

蓝图接口(Blueprint Interface) 是一个或多个函数的集合 - 只有名称,没有实施 -
可以添加到其他蓝图中。任何添加了该接口的蓝图都保证拥有这些函数。接口的函数 可以在添加它的每个蓝图中提供功能。在本质上,这类似于一般编程中的接口概念, 它允许多个不同类型的对象通过一个公共接口 共享和被访问。简单地说,蓝图接口允许不同的蓝图相互共享和发送数据。

内容创建者可以通过编辑器以与其他蓝图类似的方式创建蓝图接口, 但它们仍有一定的局限性,原因在于以下操作不可执行:

  • 添加新变量

  • 编辑图表

  • 添加组件

蓝图接口的使用提供了一种实现与多个不同类型的对象交互的通用方法, 这些对象都共享某些特定的功能。这意味着您可以拥有完全不同类型的对象,比如一辆车和一棵树,它们有一个共同的特点, 那就是它们都可以被武器射击并受到伤害。通过创建包含"OnTakeWeaponFire"函数的蓝图接口,并让车和树都实施该蓝图接口, 您可以将车和树视为同一类型, 在它们被击中时只需调用"OnTakeWeaponFire"函数。请阅读有关如何在 实施蓝图接口 页面上实施蓝图接口的信息。

创建蓝图接口

内容浏览器(Content Browser) 中创建蓝图接口非常简单,只需 右键单击 并从上下文菜单中选择蓝图接口(Blueprint Interface),然后命名新接口。

createinterface.png

createdblueprintinterface.png

创建完毕后,您需要编辑接口的函数。

编辑蓝图接口

蓝图接口在 蓝图编辑器(Blueprint Editor) 中编辑。由于您不能创建自己的变量、图表或组件,所以编辑接口的过程与编辑标准蓝图类的过程截然不同。

当您首次打开一个新接口时,编辑器如下图所示:

InterfaceEditor.png

如果您刚刚创建了接口,您将看到编辑器为您创建了一个名为NewFunction_0的新空白函数,它将被突出显示以便您重命名。

添加函数

函数是接口的主要组件。接口函数没有实施。它们只是作为输入和输出的定义而存在。这些函数可以用于通过接口发送数据,也可以在实施该接口的任何蓝图中被覆盖。

若要添加新函数,请执行以下操作:

  1. 我的蓝图(My Blueprint) 选项卡中,单击函数列表标头 myblueprint_function.png 上的 添加按钮(Add Button) plus_Button.png 以创建一个新函数。

  2. 我的蓝图(My Blueprint) 窗格中,输入新函数的名称。

    RenameMyFunction.png

  3. 新图表区域将与新函数一同显示。请注意,该函数既没有输入,也没有输出。

    NewFunctionCreated.png

编辑函数签名

由于接口函数没有实施,作为设计人员,您所能做的就是指定一系列类型化输入和输出。

若要编辑函数的签名,请执行以下操作:

  1. 细节(Details) 选项卡中,滚动到输入类别并单击 button_New.png 按钮以创建新的输入参数。

    Details_Signature.png

  2. 根据需要设置输入名称(Input Name)和类型(Type)。您还可以使用名称旁边的 button_DropdownArrow.png 按钮展开输入,从而设置默认值(Default Value)。

    FloatInput.png MyFunctionGraph.png

  3. 输出也可以通过相同的方式来添加。请注意图表如何自动更新以显示它们。

    OutputBool.png InputWithOutput.png

其他注意事项

  • 在任何输入和输出参数上,您可以单击 button_X_Remove.png 按钮以移除该参数。

  • 可以使用参数名称字段下的小文本字段为输入参数提供默认值,但是您必须展开 细节(Details) 选项卡中的属性条目才能看到它。

  • 当参数属性展开时,您可以使用 细节(Details) 选项卡中的 button_moveUp.png button_moveDown.png 来更改输入和输出参数出现在节点上的位置。

  • 对于包含需要跨服务器复制的函数的任何接口,您都可以使用复制(Replicates)复选框。通过单击 类设置(Class Settings) 按钮即可在 细节(Details) 选项卡中找到该复选框。

Tags
Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback