前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >UE4之UFUNCTION介绍

UE4之UFUNCTION介绍

作者头像
李小白是一只喵
发布2021-05-13 11:32:46
2.4K0
发布2021-05-13 11:32:46
举报
文章被收录于专栏:算法微时光

UFUNCTION

UFunction 是虚幻引擎4(UE4)反射系统可识别的C++函数。

UObject 或蓝图函数库可将成员函数声明为UFunction,方法是将 UFUNCTION 宏放在头文件中函数声明上方的行中。

例如:

代码语言:javascript
复制
public: 
    UFUNCTION(BlueprintCallable, Category = "Snowing,BlueprintFunc")
        void BlueprintCallableFunction();

宏将支持函数说明符更改UE4解译和使用函数的方式。

UFUNCTION的定义:

代码语言:javascript
复制
UFUNCTION([specifier1=setting1, specifier2, ...], [meta(key1="value1", key2, ...)])
ReturnType FunctionName([Parameter1, Parameter2, ..., ParameterN1=DefaultValueN1, ParameterN2=DefaultValueN2]) [const]

可利用函数说明符将UFunction对蓝图可视化脚本图表公开,以便开发者从蓝图资源调用或扩展UFunction,而无需更改C++代码。

在类的默认属性中,UFunction可绑定到委托,从而能够执行一些操作(例如将操作与用户输入相关联)。

函数说明符

声明函数时,可以为声明添加函数说明符,以控制函数相对于引擎和编辑器的各个方面的行为方式。

函数说明符

效果

BlueprintAuthorityOnly

如果在具有网络权限的机器上运行(服务器、专用服务器或单人游戏),此函数将仅从蓝图代码执行。

BlueprintCallable

此函数可在蓝图或关卡蓝图图表中执行。

BlueprintCosmetic

此函数为修饰性的,无法在专用服务器上运行。

BlueprintImplementableEvent

此函数可在蓝图或关卡蓝图图表中实现。

BlueprintNativeEvent

此函数旨在被蓝图覆盖掉,但是也具有默认原生实现。用于声明名称与主函数相同的附加函数,但是末尾添加了Implementation,是写入代码的位置。如果未找到任何蓝图覆盖,该自动生成的代码将调用 Implementation 方法。

BlueprintPure

此函数不对拥有它的对象产生任何影响,可在蓝图或关卡蓝图图表中执行。

CallInEditor

可通过细节(Details)面板`中的按钮在编辑器中的选定实例上调用此函数。

Client

此函数仅在拥有在其上调用此函数的对象的客户端上执行。用于声明名称与主函数相同的附加函数,但是末尾添加了Implementation。必要时,此自动生成的代码将调用 Implementation 方法。

CustomThunk

UnrealHeaderTool 代码生成器将不为此函数生成thunk,用户需要自己通过 DECLARE_FUNCTION 或 DEFINE_FUNCTION 宏来提供thunk。

Exec

此函数可从游戏内控制台执行。仅在特定类中声明时,Exec命令才有效。

NetMulticast

此函数将在服务器上本地执行,也将复制到所有客户端上,无论该Actor的 NetOwner 为何。

Reliable

此函数将通过网络复制,并且一定会到达,即使出现带宽或网络错误。仅在与Client或Server配合使用时才有效。

SealedEvent

无法在子类中覆盖此函数。SealedEvent关键词只能用于事件。对于非事件函数,请将它们声明为static或final,以密封它们。

ServiceRequest

此函数为RPC(远程过程调用)服务请求。这意味着 NetMulticast 和 Reliable。

ServiceResponse

此函数为RPC服务响应。这意味着 NetMulticast 和 Reliable。

Server

此函数仅在服务器上执行。用于声明名称与主函数相同的附加函数,但是末尾添加了 _Implementation,是写入代码的位置。必要时,此自动生成的代码将调用 _Implementation 方法。

Unreliable

此函数将通过网络复制,但是可能会因带宽限制或网络错误而失败。仅在与Client或Server配合使用时才有效。

WithValidation

用于声明名称与主函数相同的附加函数,但是末尾需要添加_Validate。此函数使用相同的参数,但是会返回bool,以指示是否应继续调用主函数。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • UFUNCTION
    • 函数说明符
    相关产品与服务
    云服务器
    云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档