美文网首页
Unreal4使用接口0036bate1

Unreal4使用接口0036bate1

作者: 深呼吸10911 | 来源:发表于2021-06-09 03:24 被阅读0次

使用接口

使用蓝图接口与多个蓝图同时通信的范例。

在此指南中,我们将设置一个 蓝图接口,将其调用后可在多个蓝图中执行不同脚本。

此指南使用启用 新手内容 的 Blueprint First Person 模板。

1.在 Content/StarterContent/Props 文件夹中,右键单击 SM_GlassWindow 并选择 Create Destructible Mesh。 我们需要将静态网格体转换为可摧毁网格体(Destructible Mesh),在被击中后破碎。

2.打开可摧毁网格体,点击 Fracture Mesh 和 Save,然后关闭可摧毁网格体编辑器窗口。



3.右键单击 SM_GlassWindow_DM 资源,然后在 Asset Actions 下选择 Create Blueprint Using This...。

将弹出提示输入蓝图的命名和保存路径(此处使用 SM_GlassWindow_DM)。

4.在 内容浏览器 中 右键单击,然后在 Blueprints 下选择 Blueprint Interface。



将再次弹出提示输入蓝图接口的命名和保存路径(此处使用 DM_Interface)。
5.在蓝图接口中,将现有函数命名为 IsDestructible?,然后点击 New 添加下图中显示的 输入(Inputs)。



上图中我们创建了三个 Inputs,用于在应用此蓝图接口的蓝图之间传递变量。我们创建了两个 浮点 变量:一个名为 Damage,用于传递命中时对物体形成的破坏量;另一个名为 Strength,用于传递应用的冲击力量。最后添加一个名为 HitLoc 的 矢量,用于保存物体被命中的位置,以便传递信息。
6.编译 并 保存,然后关闭蓝图接口。

7.在 内容浏览器 中打开 SM_GlassWindow_DM 蓝图,然后点击工具栏中的 Class Settings 选项。



8.在 Details 面板中,点击 Interfaces 下的 Add 按钮并添加 DM_Interface。

此操作将在此蓝图中应用蓝图接口,以便访问其中的函数。
9.在图表中 单击右键,搜索 ? 并选择 Event Is Destructible? 事件。

10.长按 Control 从 MyBlueprint 窗口拖入 Destructible 组件并创建以下脚本。

在 Destructible 组件引出的连线后,我们使用 Apply Damage 并连接所需的损坏、力量、位置和方向要求,对玻璃窗应用破坏。实际的损坏、力量和命中位置信息将通过蓝图接口从另一个蓝图(稍后进行设置)传递到此蓝图。

11.编译 并 保存,然后关闭蓝图。
12.打开 内容浏览器 中 Content/StarterContent/Blueprints 下的 Blueprint_CeilingLight 蓝图。



对此灯进行射击时,我们将使用蓝图接口执行不同的操作。

13.通过 Class Settings 添加 DM_Interface,然后拖入 PointLight1 组件并创建以下脚本。



Event Is Destructible? 被调用时,我们首先将灯光设为绿色。第二次调用时,我们将把强度设为 0(关闭灯光)。注意:我们并未使用接口中包含的损坏、力量或命中位置信息,因其与此蓝图无关。使用蓝图接口可形成一个整体函数,在应用接口和函数的所有蓝图中进行调用,然后确定每个蓝图上执行的脚本。

14.编译 并 保存,然后关闭蓝图。

15.打开 内容浏览器 中 Content/FirstPersonBP/Blueprints 下的 FirstPersonProjectile 蓝图。



此蓝图包含玩家武器开火时游戏中生成的投射物的脚本。

16.通过 Class Settings 添加 DM_Interface,然后在图表中 右键单击 并添加 IsDestructible?(Message) 节点。
此操作将执行函数 IsDestructible?,应用接口和函数的所有蓝图也将执行。

如未找到此节点,取消勾选快捷菜单右上角的 Context Sensitive 选项。

17.在 Branch False 引脚的引出连线后连接 IsDestructible? 节点,并连接 Other 和 HitLocation 引脚。



在上图中,我们添加了现有的脚本,检查命中的物体是否进行物理模拟。如未进行物理模拟,则在蓝图接口中调用 IsDestructible? 函数,并为目标应用 1000 损坏和 100 力量(从 Event Hit 节点的 Other 引脚收集,在此引脚处还可获得 命中位置 并指定到 HitLoc 变量进行传递)。

18.编译 并 保存,然后关闭蓝图。

19.将 SM_GlassWindow_DM 和 Blueprint_CeilingLight 蓝图拖入关卡,然后点击 Play 按钮在编辑器中开始游戏。

射击玻璃将使其破碎并碎裂。



对灯射击一次,将使灯光变为步骤 13 中指定的颜色。



再次对灯进行射击,将使灯光关闭(已在步骤 13 中设置)。

此例使用 蓝图接口 在蓝图之间传递变量,并调用在应用接口的蓝图中执行不同脚本的函数。如需了解蓝图接口使用和其他形式蓝图通信的更多内容,请查阅下方的 相关页面 部分。

相关文章

  • Unreal4使用接口0036bate1

    使用接口 使用蓝图接口与多个蓝图同时通信的范例。 在此指南中,我们将设置一个 蓝图接口,将其调用后可在多个蓝图中执...

  • 虚幻引擎4-UE4 入门之图文教程集合

    [unreal4入门系列之一] Unreal4引擎是什么 [unreal4入门系列之二] 下载和安装虚幻4游戏引擎...

  • UE4 渲染模块

    unreal4 渲染引擎的渲染模块,主要是由Scene. 材质系统,Shader,以及 各个平台的渲染API组成。

  • retrofit使用

    定义接口 使用接口

  • java中接口的意义

    简单地说:接口的作用就是把使用接口的人和实现接口的人分开,实现接口的人不必要关心谁去使用,而使用接口的人也不用关心...

  • Binder NDK接口介绍

    一 binder NDK接口使用 从android Q开始,binder添加了ndk使用的接口,相关使用接口示例如...

  • 接口(interface)

    接口的使用 接口使用interface来定义。 Java中,接口和类是并列的结构。 如何定义接口,定义接口中的成员...

  • WireMock快速生成接口

    WireMock的使用 前期对接口,但接口还未开发时使用。接口数据为虚拟的。 使用步骤 1.下载jar http:...

  • 使用 Postman 进行接口测试(cookie设置)

    目录:使用 Postman 进行接口测试(入门)使用 Postman 进行接口测试(续) 使用postman模拟接...

  • kotlin 接口和抽象类的使用

    一、接口的使用(1) 二、接口和抽象类的使用(2)

网友评论

      本文标题:Unreal4使用接口0036bate1

      本文链接:https://www.haomeiwen.com/subject/zyfjeltx.html