Unreal属性宏UPROPERTY的参数

关于UPROPERTY的介绍,官方是这么说的:

UProperty变量通过标准C++语法及额外的描述符号进行声明,描述符号包括变量修饰符以及放置于声明上的元数据。(官方中文释义

Properties are declared using standard C++ variable syntax, preceded by the UPROPERTY macro which defines property metadata and variable specifiers.

差不多就是用来修饰属性的。在声明属性时,声明上可添加修饰符以控制引擎和编辑器的不同方面的属性表现。

最常见的用法是:

UPROPERTY(EditAnywhere)
int Test;
这样就可以把Test属性显示在编辑器中了。如图:


所有属性修饰符(用EditAnywhere和Category测试了一下,是不区分大小写的,但是规范起见,还是按照官方的大小写规则来):

AdvancedDisplay

属性被显示在细节面板的高级下拉框中。

AssetRegistrySearchable

AssetRegistrySearchable关键字表明此属性及其值将会为任意将其作为成员变量而包含的资源类示例被自动添加到资源注册中。不可用于结构体属性或参数。

BlueprintAssignable

仅能用于Multicast代理。应显示该属性,以供在蓝图中分配。


BlueprintCallable

仅能用于Multicast代理。应显示该属性,以在蓝图代码中调用。


BlueprintReadOnly

在蓝图中只读。


BlueprintReadWrite

在蓝图中读写。


Category

定义属性的分类。使用方法:

Category=CategoryName.

示例:

UPROPERTY(EditAnywhere,Category="myCategory")
int Test;
效果:



Config

表示该变量将会成为可配置状态。当前值可被保存到ini文件中,并且将在创建时被载入。无法在默认属性中被赋值。只读


EditAnywhere

表示该属性可从编辑器内的属性窗口编辑。


EditDefaultsOnly

表示该属性可通过属性窗口来编辑,但仅能对原型编辑。

EditInstanceOnly

表示该属性可通过属性窗口来编辑,但仅能对实例而非原型进行编辑。


EditFixedSize

仅限于动态数组。这使得用户不能通过UnrealEd属性窗口来变更数组的长度。

EditInline

通过此修饰符使得用户可编辑UnrealEd的属性查看器中的变量所引用的对象属性。(仅对对象引用可用,包括对象引用数组)。


Export

仅对对象属性(或对象数组)有效。表示当对象被复制(复制/粘贴)或导出到T3D时,被分配给该属性的对象应完全作为子对象区块来导出,而不是仅仅输出对象引用本身。

NoExport

仅对native类有效。此变量不应被包含在自动生成的类声明中。


GlobalConfig

类似于config修饰符,区别是您不能在子类中重载它。无法在默认属性中被赋值。 只读 。

Instanced

仅能用于对象属性。当此类的实例被创建时,它会被赋予一个默认分配给此变量的对象的独特拷贝。用于对在类默认属性中定义的子对象进行实例化。类似EditInline和Export修饰符。

Interp

表示该值可由Matinee的浮点或向量属性轨迹来随时间驱动。


Localized

此变量的值将定义本地值。最常用于字符串。只读 。


Native

属性为native:C++代码负责对其序列化并显示给GC。


NoClear

防止该对象引用在编辑器中被设置为None.隐藏编辑器的清除(以及浏览)按钮。


NonTransactional

表示变更为此变量值将不会被包含在编辑器的撤消/重做历史中。


Ref

该值在函数调用后被复制出来。仅在函数参数声明中有效。


Replicated

此变量应通过节点网络进行复制。



ReplicatedUsing

此变量应通过节点网络进行复制,在其接受到 Callback 函数后执行、

  • 使用方法: ReplicatedUsing=FunctionName(函数名称)


RepRetry

仅用于结构体属性。如无法被完全发送,请重试复制此属性(例如,对象引用尚无法通过节点网络来进行序列化)。对于简单引用来说,这是一个默认值,但对结构体来说,由于带宽消耗,很多情况下我们不需要。所以除非此标识被定义,否则其会被禁用。


SaveGame

The SaveGame specifier is a simple way to include fields explicitly for a checkpoint/save system at the property level. You set the flag on all fields you want to save and then use a proxy archiver to read/write it.


SerializeText

Native属性应以文本形式进行序列化(导入文本,导出文本)。


SimpleDisplay

使属性在细节面板中默认为可见。


Transient

该属性为临时属性。不应被保存,在载入时会被填零。


VisibleAnywhere

表示该属性在属性窗口中可见,但根本无法被编辑。

示例:

UPROPERTY(VisibleAnywhere,Category="myCategory")
int Test=6;
效果:



VisibleDefaultsOnly

表示该属性仅在原型的属性窗口中可见,但无法被编辑。

VisibleInstanceOnly

表示该属性仅在实例的属性窗口中可见,但对原型则不行,并且无法被编辑。




更多内容可以参照官方说明文档:

https://docs.unrealengine.com/latest/CHN/Programming/UnrealArchitecture/Reference/Properties/index.html





  • 5
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Unreal的控制台命令参数合集 在UE中, 按下~键可以调用到许多有用的指令, 调试场景时能透过此功能深入测试 : Exec的命令是基于字符串的命令,您可以在游戏或编辑器中运行。他们也被称为控制台命令 ,因为它们通常在一个控制台窗口中运行。 要在游戏中执行命令,或?,弹出控制台,键入命令,然后按Enter。这些命令不区分大小写。 要在编辑器中执行命令,可在主编辑器窗口的左下方文本框中,或在通用浏览器的日志选项卡底部的文本框中输入命令。 在游戏中的按键设置 在某些情况下,EXEC命令可以绑定到配置文件里的输入键。 输入是通过不同的C++ exec() 实现的,通常用ULocalPlayer::Exec() 开始。 所以,出下列之外,我们还可以自定义自己的调试函数~ 命令列表 通用 open mapname 打开指定名称的地图(不加地图扩展名)。 openmenu scenename 打开指定名称的场景并显示(UIScene'' ). 注意 :如果场景名不正确,请尝试用""(包括引号) setbind keyname command 将指定的按键名绑定到给定的控制台命令。 shot 根据屏幕的分辨率(或窗口分辨率,如果游戏在窗口模式下运行)截图。 tiledshot resolutionscale pixeloverlap A high resolution is screenshot is taken at the given scale of the current resolution, with a pixel overlap for each tile. 指定比例的高分辨率截图。 togglescreenshotmode 截屏时显示或隐藏用户界面。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值