蓝图最佳方法

本页面的内容:

通过 蓝图 可执行许多操作。从制作小游戏或程序化内容工具,到设计新功能原型,再到调试和改进程序员制作的内容,均可通过蓝图可视化脚本系统完成。

然而,如果在蓝图中完成部分特定操作,将对性能产生较大影响。如果蓝图在每个 tick 都执行大量操作和复杂的数学计算,则需要考虑使用本地 C++ 代码。蓝图最适合创建事件驱动的功能,如处理伤害接收、控制,或其他非每帧调用的操作。

如需了解蓝图编码的更多内容,或蓝图编译的技术细节,请查阅 蓝图技术指南

即使您的功能非常适合于蓝图,在实际的蓝图设置过程中仍然会面临一些决定,这些决定将使过程更加顺畅。此指南将讲述部分常见决定,以及对蓝图使用者的提示和技巧。

关卡蓝图 vs. 蓝图类

使用过 UE3 Kismet 的使用者不会关卡蓝图感到陌生,因为可在关卡中直接选择物体并进行操作。它们适合于创建一次性原型和熟悉蓝图系统,但只限定于它们使用中的关卡。这意味着关卡蓝图非常利于对关卡限定的功能,或其中的 Actor 进行设置。在一些范例中,触碰到特定开关时将启动过场,或在消灭所有敌人后打开一扇特定的门。

总之,蓝图类是在项目中实现可重用行为的最佳方式。创建蓝图类后,可将其添加到任意关卡,还可随意添加 任意数量的副本到关卡中,无需四处复制脚本。

如您从关卡蓝图开始,然后决定将行为移入蓝图类,此过程将会非常简单。当您从关卡蓝图复制在 Actor 上进行操作的函数(如在一盏灯上调用 Set Brightness),并基于灯光 Actor 的关闭将它们复制到蓝图类中时,函数将更新到适当的范围中。

扩展阅读:

类变量 vs. 本地变量

在蓝图中进行工作时,可使用 我的蓝图 标签添加 变量 。在函数中可看到 本地变量 My Blueprint 标签下的额外部分。

VariablesLocal.png

本地变量拥有适用范围,意味着它们只会出现在定义的范围中。因此,函数中的本地变量仅限该函数可见,其他函数不可见,事件图表也不可见。这有助于减少仅在函数上下文中相关的内容出现的混乱。在函数中使用时,可将本地变量视为“便笺纸”。它们可帮助函数执行操作,函数完成之后即被废弃。

需要从蓝图中多处进行访问的内容即为类变量。因此,诸如对网格体或其他组件的引用,或需要公开以便从其他蓝图访问的变量等均为类变量。使用之后您便会对其留下深刻印象。

函数 vs. 宏

函数 两者在外部完成相同目标:它们发送输入到节点,事件发生,然后进行输出。它们以两种不同方式进行,但也存在一些共性:

在更高级的使用情况中将了解到一些主要不同点。

因它们在后台工作的方式,意味着可进行的操作中存在一些不同:

总之,如果需要在各处重复使用一些功能,最好使用宏。但如果需要调整蓝图子项中的行为,或需要从另一个蓝图直接进行访问,则最好使用函数!

扩展阅读:

蓝图通信类型

两个蓝图之间存在几种不同通信方法。最常见的使用情况是直接蓝图通信,有时需要实现的功能意味着您将使用事件分配器或蓝图接口替代。如需了解每种通信类型的概览、使用情况范例,以及上手教程,请查阅 蓝图通信用法 。如需创建使用三种类型的项目,请查阅 蓝图通信项目 指南。

常规提示

在蓝图编辑器中工作

在蓝图编辑器中工作时,可通过几种技巧寻找到需要使用的节点,以及已创建的节点和注释。

设置图表

每个人的图表设置偏好均不相同,以下提示可助您对内容进行组织,易于使用。