Choose your operating system:
Windows
macOS
Linux
UFunction声明
UFunction
是虚幻引擎4(UE4)反射系统可识别的C++函数。
UObject
或蓝图函数库可将成员函数声明为UFunction,方法是将
UFUNCTION
宏放在头文件中函数声明上方的行中。宏将支持
函数说明符
更改UE4解译和使用函数的方式。
UFUNCTION([specifier1=setting1, specifier2, ...], [meta(key1="value1", key2, ...)])
ReturnType FunctionName([Parameter1, Parameter2, ..., ParameterN1=DefaultValueN1, ParameterN2=DefaultValueN2]) [const];
可利用函数说明符将UFunction对 蓝图可视化脚本 图表公开,以便开发者从蓝图资源调用或扩展UFunction,而无需更改C++代码。在类的默认属性中,UFunction可绑定到 委托 ,从而能够执行一些操作(例如将操作与用户输入相关联)。它们还可以充当网络回调,这意味着当某个变量受网络更新影响时,用户可以将其用于接收通知并运行自定义代码。用户甚至可创建自己的控制台命令(通常也称 debug 、 configuration 或 cheat code 命令),并能在开发版本中从游戏控制台调用这些命令,或将拥有自定义功能的按钮添加到关卡编辑器中的游戏对象。
函数说明符
声明函数时,可以为声明添加 函数说明符 ,以控制函数相对于引擎和编辑器的各个方面的行为方式。
函数说明符 |
效果 |
---|---|
|
如果在具有网络权限的机器上运行(服务器、专用服务器或单人游戏),此函数将仅从蓝图代码执行。 |
|
此函数可在蓝图或关卡蓝图图表中执行。 |
|
此函数为修饰性的,无法在专用服务器上运行。 |
|
此函数可在蓝图或关卡蓝图图表中实现。 |
|
此函数旨在被蓝图覆盖掉,但是也具有默认原生实现。用于声明名称与主函数相同的附加函数,但是末尾添加了`
Implementation
|
|
此函数不对拥有它的对象产生任何影响,可在蓝图或关卡蓝图图表中执行。 |
|
可通过细节(Details)面板`中的按钮在编辑器中的选定实例上调用此函数。 |
|
在蓝图编辑工具中显示时指定函数的类别。使用 | 运算符定义嵌套类别。 |
|
此函数仅在拥有在其上调用此函数的对象的客户端上执行。用于声明名称与主函数相同的附加函数,但是末尾添加了`
Implementation
|
|
|
|
此函数可从游戏内控制台执行。仅在特定类中声明时,Exec命令才有效。 |
|
此函数将在服务器上本地执行,也将复制到所有客户端上,无论该Actor的
|
|
此函数将通过网络复制,并且一定会到达,即使出现带宽或网络错误。仅在与`Client`或`Server`配合使用时才有效。 |
|
无法在子类中覆盖此函数。
|
|
此函数为RPC(远程过程调用)服务请求。这意味着
|
|
此函数为RPC服务响应。这意味着
|
|
此函数仅在服务器上执行。用于声明名称与主函数相同的附加函数,但是末尾添加了
|
|
此函数将通过网络复制,但是可能会因带宽限制或网络错误而失败。仅在与`Client`或`Server`配合使用时才有效。 |
|
用于声明名称与主函数相同的附加函数,但是末尾需要添加`_Validate`。此函数使用相同的参数,但是会返回`bool`,以指示是否应继续调用主函数。 |
元数据说明符
声明类、接口、结构体、列举、列举值、函数,或属性时,可添加 元数据说明符 来控制其与引擎和编辑器各方面的相处方式。每一种类型的数据结构或成员都有自己的元数据说明符列表。
函数元标签 |
效果 |
---|---|
|
以逗号分隔的参数列表将显示为高级引脚(需要UI扩展)。 |
|
用一个数字替代
|
|
说明
|
|
使用
|
|
如列出参数(由引用传递)的引脚未连接,其将拥有一个自动创建的默认项。这是蓝图的一个便利功能,经常在数组引脚上使用。 |
|
仅能由来自蓝图函数库的静态
|
|
此函数是一个内部实现细节,用于实现另一个函数或节点。其从未直接在蓝图图表中公开。 |
|
此函数只能在蓝图中的拥有对象上调用。其无法在另一个实例上调用。 |
|
用于拥有一个
|
|
说明
|
|
说明
|
|
列出的参数都会被视为通配符。此说明符需要
要声明自定义
|
|
用于
|
|
蓝图对此函数进行引用时将引起编译警告,告知用户函数已废弃。可使用
|
|
如果函数已废弃,尝试编译使用此函数的蓝图时,其将被添加到标准废弃警告。 |
|
被标记为
|
|
此节点在蓝图中的命名将被此处提供的值所取代,而非代码生成的命名。 |
|
用于
|
|
用于
|
|
隐藏用于指出函数调用所处对象的self引脚。self引脚在与调用蓝图的类兼容的
|
|
与
|
|
指定在搜索此函数时可使用的一套关键词,例如合适放置节点在蓝图图表中调用函数。 |
|
说明一个延迟操作。延迟操作拥有类型为
|
|
用于延迟
|
|
用于
|
|
用于
|
|
只在蓝图函数库中有效。此函数将被视为拥有类的整体
|
|
完整提示文本过长时使用的简短提示文本,例如父类选取器对话。 |
|
覆盖从代码注释自动生成的提示文本。 |
|
在Actor构造时调用此函数并非安全操作。 |
|
由
|
函数参数说明符
参数说明符 |
描述 |
---|---|
Out |
声明由引用传递的参数,使函数对其进行修改。 |
Optional |
通过任选关键词可使部分函数参数变为任选,便于调用。任选参数的数值(调用方未指定)取决于函数。例如,
|
委托
委托 是一种泛型但类型安全的方式,可在C++对象上调用成员函数。可使用委托动态绑定到任意对象的成员函数,之后在该对象上调用函数,即使调用程序不知对象类型也可进行操作。复制委托对象很安全。你也可以利用值传递委托,但这样操作需要在堆上分配内存,因此通常并不推荐。请尽量通过引用传递委托。虚幻引擎共支持三种类型的委托:
在 委托 页面中查看参考和使用信息。
定时器
定时器 安排在经过一定延迟或一段时间结束后要执行的操作。例如,您可能希望玩家在获取某个能力提升道具后变得无懈可击,然后10秒钟后恢复可受伤害状态。又或者,您可能希望玩家在穿过一间充满毒气的房间时,每秒受到一次伤害。这些操作都可以使用定时器来实现。
在 Gameplay定时器 页面中查看参考和使用信息。