UPROPERTY属性修饰符

基本功能:定义能够被UE垃圾回收机制自动回收的属性变量
参数扩展:以下是官网给的例子解析
UPROPERTY(EditAnywhere):用此修饰想要暴露在编辑器以便随时编辑的变量(显示在面板上)
UPROPERTY(EditAnywhere,Category="Damage"):把被修饰的属性分类到信息面板中Damage那一栏(面板上显示名称为Damage)
UPROPERTY(EditAnywhere,BlueprintReadWrite,Category=“Damage”):支持蓝图对该变量的读写操作(蓝图中也显示)
UPROPERTY(BlueprintReadOnly,VisibleAnywhere,Transient,Category="Damage"):支持蓝图读操作,并在编辑器面板中可见,Transient表明不会被保存到硬盘或从硬盘加载


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

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

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

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

BlueprintReadOnly
这个属性可以阅读蓝图,但不能修改。这个操作符与BlueprintReadWrite说明符是不兼容的。

BlueprintReadWrite
这个属性可以读取或写入的蓝图。这个操作符与BlueprintReadOnly说明符是不兼容的。

Category
定义属性的分类。使用方法: Category=CategoryName. (分类=分类名称)

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

Const
这个变量是常量,应该导出为常量。在编辑器中const属性将是不可修改的。

DuplicateTransient
表示变量值应在任意类型的重复过程中(复制/粘贴,二进制文件复制等)被重置为类默认值。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ReplicatedUsing
此变量应通过节点网络进行复制,在其接受到 Callback 函数后执行、
使用方法: ReplicatedUsing=FunctionName(函数名称)

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

SaveGame
SaveGame说明符是一个简单的方法,包括字段明确检查点/保存系统在属性级别。

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

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

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

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

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

VisibleInstanceOnly
表示该属性仅在实例的属性窗口中可见,但对原型则不行,并且无法被编辑。
————————————————
版权声明:本文为CSDN博主「丿咫尺天涯丨」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_30028059/article/details/52473572

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在 Java 中,修饰符可以混用,但是有一些限制和规则需要遵守: 1. 访问修饰符只能使用一个。例如,一个方法只能被 `public`、`protected` 或 `private` 中的一个修饰符修饰。 2. 非访问修饰符可以使用多个。例如,一个方法可以被同时修饰为 `static` 和 `final`。 3. 修饰符的顺序可以任意排列,但是建议按照约定的顺序放置。例如,方法的修饰符顺序通常是 `public`、`protected` 或 `private`,然后是 `abstract`、`static`、`final` 和 `synchronized`。 4. 局部变量不能被访问修饰符修饰,只能被 `final`、`volatile` 或 `transient` 等非访问修饰符修饰。 5. 接口中的方法默认为 `public abstract`,属性默认为 `public static final`,因此这些修饰符可以省略。 下面是一个示例代码,展示了修饰符的混用: ```java public class MyClass { private static final int MAX_VALUE = 100; public synchronized void doSomething() { // 方法体 } public static void main(String[] args) { final String name = "John"; volatile int count = 0; // 其他代码 } } ``` 在这个例子中,`MyClass` 类的 `doSomething()` 方法同时使用了 `public` 和 `synchronized` 修饰符,`MAX_VALUE` 属性使用了 `private`、`static` 和 `final` 修饰符,`main()` 方法中的 `name` 变量使用了 `final` 修饰符,`count` 变量使用了 `volatile` 修饰符。这些修饰符的顺序可以任意排列,但是为了代码可读性和规范性,建议按照约定的顺序放置。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值