Appearance
UPROPERTY
将对象属性暴露到蓝图中。整形只有int32能暴露到蓝图中。
cpp
UPROPERTY(标记, 标记, ..., meta=(key=value, key=value, ...))
meta
- 别名标记指令
meta=(DisplayName="别名")
修改显示的名称。也就是真名也有,但是额外的赋予了一个别名。例如有属性叫num,meta可以赋个别名为ageNum。
- 成员属性阈值约束
meta = (UIMin="10", UIMax="20") meta = (ClampMin="0", ClampMax="10")
前一个,是UI上约束,但实际上不约束
后一个,是UI上约束,实际上也约束
- 成员属性修改约束
cpp
// EditCondition
// 借助一个布尔变量来控制另一个变量是否可以在面板中被修改
// UPROPERTY(EditAnywhere, EditFixedSize)
bool bShow;
UPROPERTY(EditAnywhere, AdvancedDisplay,meta=(ClampMin="0", ClampMax="10",EditCondition="bShow"))
int32 wock;
// 还可以写UIMin和UIMax,这样就在UI上限制了显示的最大值和最小值,但实际上能够设置的值的范围是由ClampMin和ClampMax决定的。
// 即,滑动的时候虽然最大最小值在UIMin和UIMax的范围内,但是允许手动输入的值在ClampMin和ClampMax的范围内。
常见标记
- BlueprintReadOnly
属性在蓝图中只读
- BlueprintReadWrite
属性在蓝图中可改
- Category
分类,同UFUNCTION
- Config
可存储到配置文件,同UFUNCTION。需要在UCLASS中设置Config。然后
cpp
// 存储
void AMyObject::SaveConfig(FString str)
{
this->str = str;
SaveConfig();
}
// 调用
void AMyObject::LoadConfig(FString str)
{
LoadConfig();
UE_LOG(LogTemp, Log, TEXT("== %s"), this->str);
}
说明符 | 可编辑范围 | 可见范围 | 特殊说明 |
---|---|---|---|
EditAnywhere | 蓝图编辑器 + 场景细节面板 | 自动可见 | 允许在原型和实例中自由编辑 |
EditDefaultsOnly | 仅蓝图编辑器(原型数据) | 自动可见 | 禁止在场景实例中编辑 |
EditInstanceOnly | 仅场景细节面板(实例数据) | 自动可见 | 禁止在蓝图原型中编辑 |
VisibleAnywhere | 不可编辑 | 蓝图编辑器 + 场景细节面板 | 组件指针:显示组件所有可编辑项(但仍不可编辑) |
VisibleDefaultsOnly | 不可编辑 | 仅蓝图编辑器(原型数据) | 组件指针:显示组件所有可编辑项(但仍不可编辑) |
VisibleInstanceOnly | 不可编辑 | 仅场景细节面板(实例数据) | 组件指针:显示组件所有可编辑项(但仍不可编辑) |
EditFixedSize | 禁止修改动态数组长度 | 依赖其他标记(如EditAnywhere ) | 需配合其他编辑标记使用,限制数组长度调整(添加/删除需代码控制) |