This commit is contained in:
2025-08-02 12:09:34 +08:00
commit e70b01cdca
2785 changed files with 575579 additions and 0 deletions

View File

@@ -0,0 +1,393 @@
---
title: Ue4 c++ UProperty反射 PostEditChangeProperty
date: 2022-12-09 13:40:28
excerpt:
tags: UObject
rating: ⭐⭐⭐
---
## 反射系统
https://ikrima.dev/ue4guide/engine-programming/uobject-reflection/uobject-reflection/
## Property类型判断
- UStructProperty结构体
- UMapPropertyTMap
- UArrayPropertyTArray
属性判断是否是数组或是Map
```c++
FProperty* PropertyThatChanged = PropertyChangedEvent.Property;
if ( PropertyThatChanged != nullptr )
{
    if (PropertyThatChanged->IsA(FArrayProperty::StaticClass()))
    {
        FArrayProperty* ArrayProp = CastField<FArrayProperty>(PropertyThatChanged);
        FProperty* InnerProp = ArrayProp->Inner;
        if (InnerProp->IsA(FStructProperty::StaticClass()))
        {
            const FToonRampData* ToonRampData = ArrayProp->ContainerPtrToValuePtr<FToonRampData>(InnerProp, 0);
            if(ToonRampData)
            {
            }
        }
    }else if(PropertyThatChanged->IsA(FMapProperty::StaticClass()))
    {
        FArrayProperty* ArrayProp = CastField<FArrayProperty>(PropertyThatChanged);
        FProperty* InnerProp = ArrayProp->Inner;
        if (InnerProp->IsA(FStructProperty::StaticClass()))
        {
            const FToonRampData* ToonRampData = ArrayProp->ContainerPtrToValuePtr<FToonRampData>(InnerProp, 0);
            if(ToonRampData)
            {
            }
        }
    }
    }
```
## 属性变化回调函数
```c#
virtual void EditorApplyTranslation(const FVector& DeltaTranslation, bool bAltDown, bool bShiftDown, bool bCtrlDown) override;
virtual void EditorApplyRotation(const FRotator& DeltaRotation, bool bAltDown, bool bShiftDown, bool bCtrlDown) override;
virtual void EditorApplyScale(const FVector& DeltaScale, const FVector* PivotLocation, bool bAltDown, bool bShiftDown, bool bCtrlDown) override;
virtual void PostEditMove(bool bFinished) override;
virtual void PostEditComponentMove(bool bFinished) override;
```
# 没有Struct()却可以在蓝图找到类型问题笔记
## Traits
大概率是这个
```c++
template<>
struct TStructOpsTypeTraits<FBox2D> : public TStructOpsTypeTraitsBase2<FBox2D>
{
    enum
    {
        WithIdenticalViaEquality = true,
        WithNoInitConstructor = true,
        WithZeroConstructor = true,
    };
};
IMPLEMENT_STRUCT(Box2D);
```
## BlueprintCompilerCppBackendValueHelper.cpp
```c++
bool FEmitDefaultValueHelper::SpecialStructureConstructor(const UStruct* Struct, const uint8* ValuePtr, /*out*/ FString* OutResult)
{
    ...
    if (TBaseStructure<FBox2D>::Get() == Struct)
    {
        if (OutResult)
        {
            const FBox2D* Box2D = reinterpret_cast<const FBox2D*>(ValuePtr);
            *OutResult = FString::Printf(TEXT("CreateFBox2D(FVector2D(%s, %s), FVector2D(%s, %s), %s)")
                , *FEmitHelper::FloatToString(Box2D->Min.X)
                , *FEmitHelper::FloatToString(Box2D->Min.Y)
                , *FEmitHelper::FloatToString(Box2D->Max.X)
                , *FEmitHelper::FloatToString(Box2D->Max.Y)
                , Box2D->bIsValid ? TEXT("true") : TEXT("false"));
        }
        return true;
    }
    ...
}
struct FStructAccessHelper_StaticData
{
    TMap<const UScriptStruct*, FString> BaseStructureAccessorsMap;
    TMap<const UScriptStruct*, bool> SupportsDirectNativeAccessMap;
    TArray<FSoftClassPath> NoExportTypesWithDirectNativeFieldAccess;
    static FStructAccessHelper_StaticData& Get()
    {
        static FStructAccessHelper_StaticData StaticInstance;
        return StaticInstance;
    }
private:
    FStructAccessHelper_StaticData()
    {
        // These are declared in Class.h; it's more efficient to access these native struct types at runtime using the specialized template functions, so we list them here.
        MAP_BASE_STRUCTURE_ACCESS(TBaseStructure<FRotator>::Get());
        MAP_BASE_STRUCTURE_ACCESS(TBaseStructure<FTransform>::Get());
        MAP_BASE_STRUCTURE_ACCESS(TBaseStructure<FLinearColor>::Get());
        MAP_BASE_STRUCTURE_ACCESS(TBaseStructure<FColor>::Get());
        MAP_BASE_STRUCTURE_ACCESS(TBaseStructure<FVector>::Get());
        MAP_BASE_STRUCTURE_ACCESS(TBaseStructure<FVector2D>::Get());
        MAP_BASE_STRUCTURE_ACCESS(TBaseStructure<FRandomStream>::Get());
        MAP_BASE_STRUCTURE_ACCESS(TBaseStructure<FGuid>::Get());
        MAP_BASE_STRUCTURE_ACCESS(TBaseStructure<FTransform>::Get());
        MAP_BASE_STRUCTURE_ACCESS(TBaseStructure<FBox2D>::Get());
        MAP_BASE_STRUCTURE_ACCESS(TBaseStructure<FFallbackStruct>::Get());
        MAP_BASE_STRUCTURE_ACCESS(TBaseStructure<FFloatRangeBound>::Get());
        MAP_BASE_STRUCTURE_ACCESS(TBaseStructure<FFloatRange>::Get());
        MAP_BASE_STRUCTURE_ACCESS(TBaseStructure<FInt32RangeBound>::Get());
        MAP_BASE_STRUCTURE_ACCESS(TBaseStructure<FInt32Range>::Get());
        MAP_BASE_STRUCTURE_ACCESS(TBaseStructure<FFloatInterval>::Get());
        MAP_BASE_STRUCTURE_ACCESS(TBaseStructure<FInt32Interval>::Get());
        MAP_BASE_STRUCTURE_ACCESS(TBaseStructure<FFrameNumber>::Get());
        MAP_BASE_STRUCTURE_ACCESS(TBaseStructure<FFrameTime>::Get());
        {
            // Cache the known set of noexport types that are known to be compatible with emitting native code to access fields directly.
            TArray<FString> Paths;
            GConfig->GetArray(TEXT("BlueprintNativizationSettings"), TEXT("NoExportTypesWithDirectNativeFieldAccess"), Paths, GEditorIni);
            for (FString& Path : Paths)
            {
                NoExportTypesWithDirectNativeFieldAccess.Add(FSoftClassPath(Path));
            }
        }
    }
}
```
## 大钊的文章中有相似的代码
https://zhuanlan.zhihu.com/p/26019216
Struct的收集
对于Struct我们先来看上篇里生成的代码
```c++
static FCompiledInDeferStruct Z_CompiledInDeferStruct_UScriptStruct_FMyStruct(FMyStruct::StaticStruct, TEXT("/Script/Hello"), TEXT("MyStruct"), false, nullptr, nullptr);  //延迟注册
static struct FScriptStruct_Hello_StaticRegisterNativesFMyStruct
{
    FScriptStruct_Hello_StaticRegisterNativesFMyStruct()
    {
        UScriptStruct::DeferCppStructOps(FName(TEXT("MyStruct")),new UScriptStruct::TCppStructOps<FMyStruct>);
    }
} ScriptStruct_Hello_StaticRegisterNativesFMyStruct;  
```
https://zhuanlan.zhihu.com/p/59553490
ICppStructOps的作用
很多朋友在看源码的时候可能会对UScriptStruct里定义的ICppStructOps类以及模板子类`TCppStructOps<CPPSTRUCT>`感到疑惑。其实它们是C++的一种常见的架构模式,用一个虚函数基类定义一些公共操作,再用一个具体模板子类来实现,从而既可以保存类型,又可以有公共操作接口。
针对于UE4这里来说ICppStructOps就定义了这个结构的一些公共操作。而探测这个C++结构的一些特性就交给了`TCppStructOps<CPPSTRUCT>`类里的`TStructOpsTypeTraits<CPPSTRUCT>`。一些C++结构的信息不能通过模板探测出来的,就需要我们手动标记提供了,所以具体的代码是:
```c++
template <class CPPSTRUCT>
struct TStructOpsTypeTraitsBase2
{
    enum
    {
        WithZeroConstructor = false, // 0构造内存清零后就可以了说明这个结构的默认值就是0
        WithNoInitConstructor = false, // 有个ForceInit的参数的构造用来专门构造出0值结构来
        WithNoDestructor = false, // 是否没有结构有自定义的析构函数, 如果没有析构的话DestroyStruct里面就可以省略调用析构函数了。默认是有的。结构如果是pod类型则肯定没有析构。
        WithCopy = !TIsPODType<CPPSTRUCT>::Value, // 是否结构有自定义的=赋值函数。如果没有的话在CopyScriptStruct的时候就只需要拷贝内存就可以了
        WithIdenticalViaEquality = false, // 用==来比较结构
        WithIdentical = false, // 有一个自定义的Identical函数来专门用来比较和WithIdenticalViaEquality互斥
        WithExportTextItem = false, // 有一个ExportTextItem函数来把结构值导出为字符串
        WithImportTextItem = false, // 有一个ImportTextItem函数把字符串导进结构值
        WithAddStructReferencedObjects = false, // 有一个AddStructReferencedObjects函数用来添加结构额外的引用对象
        WithSerializer = false, // 有一个Serialize函数用来序列化
        WithStructuredSerializer = false, // 有一个结构结构Serialize函数用来序列化
        WithPostSerialize = false, // 有一个PostSerialize回调用来在序列化后调用
        WithNetSerializer = false, // 有一个NetSerialize函数用来在网络复制中序列化
        WithNetDeltaSerializer = false, // 有一个NetDeltaSerialize函数用来在之前NetSerialize的基础上只序列化出差异来一般用在TArray属性上进行优化
        WithSerializeFromMismatchedTag = false, // 有一个SerializeFromMismatchedTag函数用来处理属性tag未匹配到的属性值一般是在结构进行升级后但值还是原来的值这个时候用来把旧值升级到新结构时使用
        WithStructuredSerializeFromMismatchedTag = false, // SerializeFromMismatchedTag的结构版本
        WithPostScriptConstruct = false,// 有一个PostScriptConstruct函数用在蓝图构造脚本后调用
        WithNetSharedSerialization = false, // 指明结构的NetSerialize函数不需要用到UPackageMap
    };
};
template<class CPPSTRUCT>
struct TStructOpsTypeTraits : public TStructOpsTypeTraitsBase2<CPPSTRUCT>
{
};
```
举个小例子假如你看到编辑器里某个属性想在C++里去修改它的值结果发现它不是public的甚至有可能连头文件都是private的这个时候如果对类型系统结构理解不深的人可能就放弃了但懂的人就知道可以通过这个对象遍历UProperty来查找到这个属性从而修改它。
还有一个例子是如果你做了一个插件调用了引擎编辑器本身的Details面板属性但又想隐藏其中的一些字段这个时候如果不修改引擎往往是难以办到的但是如果知道了属性面板里的属性其实也都是一个个UProperty来的这样你就可以通过对象路径获得这个属性然后开启关闭它的某些Flags来达成效果。这也算是一种常规的Hack方式。
## 《InsideUE4》UObject十三类型系统-反射实战
https://zhuanlan.zhihu.com/p/61042237
#### 获取类型对象
如果想获取到程序里定义的所有的class方便的方法是
```c++
TArray<UObject*> result;
GetObjectsOfClass(UClass::StaticClass(), result);   //获取所有的class和interface
GetObjectsOfClass(UEnum::StaticClass(), result);   //获取所有的enum
GetObjectsOfClass(UScriptStruct::StaticClass(), result);   //获取所有的struct
```
GetObjectsOfClass是UE4已经写好的一个很方便的方法可以获取到属于某个UClass*下面的所有对象。因此如果用UClass::StaticClass()本身就可以获得程序里定义的所有class。值得注意的是UE4里的接口是有一个配套的UInterface对象来存储元数据信息它的类型也是用UClass*表示的所以也会获得interface。根据前文enum会生成UEnumstruct会生成UScriptStruct所以把参数换成UEnum::StaticClass()就可以获得所有的UEnum*对象了UScriptStruct::StaticClass()就是所有的UScriptStruct*了,最后就可以根据这些类型对象来反射获取类型信息了。
而如果要精确的根据一个名字来查找某个类型对象就可以用UE4里另一个方法
```c++
template< class T >
inline T* FindObject( UObject* Outer, const TCHAR* Name, bool ExactClass=false )
{
    return (T*)StaticFindObject( T::StaticClass(), Outer, Name, ExactClass );
}
UClass* classObj=FindObject<UClass>(ANY_PACKAGE,"MyClass");   //获得表示MyClass的UClass*
```
#### 遍历字段
在获取到了一个类型对象后就可以用各种方式去遍历查找内部的字段了。为此UE4提供了一个方便的迭代器`TFieldIterator<T>`,可以通过它筛选遍历字段。
```c++
const UStruct* structClass; //任何复合类型都可以
//遍历属性
for (TFieldIterator<UProperty> i(structClass); i; ++i)
{
    UProperty* prop=*i;
}
//遍历函数
for (TFieldIterator<UFunction> i(structClass); i; ++i)
{
    UFunction* func=*i;
    //遍历函数的参数
    for (TFieldIterator<UProperty> i(func); i; ++i)
    {
        UProperty* param=*i;
        if( param->PropertyFlags & CPF_ReturnParm ) //这是返回值
        {
        }
    }
}
//遍历接口
const UClass* classObj; //只有UClass才有接口
for (const FImplementedInterface& ii : classObj->Interfaces)
{
    UClass* interfaceClass = ii.Class;
}
//遍历枚举
const UEnum* enumClass;
for (int i = 0; i < enumClass->NumEnums(); ++i)
{
    FName name = enumClass->GetNameByIndex(i);
    int value = enumClass->GetValueByIndex(i);
}
//遍历元数据
#if WITH_METADATA
const UObject* obj;//可以是任何对象但一般是UField才有值
UMetaData* metaData = obj->GetOutermost()->GetMetaData();
TMap<FName, FString>* keyValues = metaData->GetMapForObject(obj);
if (keyValues != nullptr&&keyValues->Num() > 0)
{
    for (const auto& i : *keyValues)
    {
        FName key=i.Key;
        FString value=i.Value;
    }
}
#endif
//查找属性
UProperty* UStruct::FindPropertyByName(FName InName) const
{
    for (UProperty* Property = PropertyLink; Property != NULL; Property = Property->PropertyLinkNext)
    {
        if (Property->GetFName() == InName)
        {
            return Property;
        }
    }
    return NULL;
}
//查找函数
UFunction* UClass::FindFunctionByName(FName InName, EIncludeSuperFlag::Type IncludeSuper) const;
```
#### 查看继承
```c++
//得到类型对象后,也可以遍历查看它的继承关系。 遍历继承链条:
const UStruct* structClass; //结构和类
TArray<FString> classNames;
classNames.Add(structClass->GetName());
UStruct* superClass = structClass->GetSuperStruct();
while (superClass)
{
    classNames.Add(superClass->GetName());
    superClass = superClass->GetSuperStruct();
}
FString str= FString::Join(classNames, TEXT("->")); //会输出MyClass->UObject
//那反过来,如果想获得一个类下面的所有子类,可以这样:
const UClass* classObj; //结构和类
TArray<UClass*> result;
GetDerivedClasses(classObj, result, false);
//函数原型是
void GetDerivedClasses(UClass* ClassToLookFor, TArray<UClass *>& Results, bool bRecursive);
//那么怎么获取实现了某个接口的所有子类呢?
TArray<UObject*> result;
GetObjectsOfClass(UClass::StaticClass(), result);
TArray<UClass*> classes;
for (UObject* obj : result)
{
    UClass* classObj = Cast<UClass>(obj);
    if (classObj->ImplementsInterface(interfaceClass))//判断实现了某个接口
    {
        classes.Add(classObj);
    }
}
```
#### 获取设置属性值
```c++
template<typename ValueType>
ValueType* UProperty::ContainerPtrToValuePtr(void* ContainerPtr, int32 ArrayIndex = 0) const
{
    return (ValueType*)ContainerVoidPtrToValuePtrInternal(ContainerPtr, ArrayIndex);
}
template<typename ValueType>
ValueType* UProperty::ContainerPtrToValuePtr(UObject* ContainerPtr, int32 ArrayIndex = 0) const
{
    return (ValueType*)ContainerVoidPtrToValuePtrInternal(ContainerPtr, ArrayIndex);
}
void* UProperty::ContainerVoidPtrToValuePtrInternal(void* ContainerPtr, int32 ArrayIndex) const
{
    //check...
    return (uint8*)ContainerPtr + Offset_Internal + ElementSize * ArrayIndex;
}
void* UProperty::ContainerUObjectPtrToValuePtrInternal(UObject* ContainerPtr, int32 ArrayIndex) const
{
    //check...
    return (uint8*)ContainerPtr + Offset_Internal + ElementSize * ArrayIndex;
}
//获取对象或结构里的属性值地址,需要自己转换成具体类型
void* propertyValuePtr = property->ContainerPtrToValuePtr<void*>(object);
//包含对象引用的属性可以获得对象
UObject* subObject = objectProperty->GetObjectPropertyValue_InContainer(object);
//也因为获取到的是存放属性值的指针地址,所以其实也就可以*propertyValuePtr=xxx;方便的设置值了。当然如果是从字符串导入设置进去UE4也提供了两个方法来导出导入
//导出值
virtual void ExportTextItem( FString& ValueStr, const void* PropertyValue, const void* DefaultValue, UObject* Parent, int32 PortFlags, UObject* ExportRootScope = NULL ) const;
//使用
FString outPropertyValueString;
property->ExportTextItem(outPropertyValueString, property->ContainerPtrToValuePtr<void*>(object), nullptr, (UObject*)object, PPF_None);
//导入值
const TCHAR* UProperty::ImportText( const TCHAR* Buffer, void* Data, int32 PortFlags, UObject* OwnerObject, FOutputDevice* ErrorText = (FOutputDevice*)GWarn ) const;
//使用
FString valueStr;
prop->ImportText(*valueStr, prop->ContainerPtrToValuePtr<void*>(obj), PPF_None, obj);
```
#### 反射调用函数
```c++
//方法原型
int32 UMyClass::Func(float param1);
UFUNCTION(BlueprintCallable)
int32 InvokeFunction(UObject* obj, FName functionName,float param1)
{
    struct MyClass_Func_Parms   //定义一个结构用来包装参数和返回值就像在gen.cpp里那样
    {
        float param1;
        int32 ReturnValue;
    };
    UFunction* func = obj->FindFunctionChecked(functionName);
    MyClass_Func_Parms params;
    params.param1=param1;
    obj->ProcessEvent(func, &params);
    return params.ReturnValue;
}
//使用
int r=InvokeFunction(obj,"Func",123.f);
```
ProcessEvent也是UE4里事先定义好的非常方便的函数内部会自动的处理蓝图VM的问题。当然更底层的方法也可以是
```c++
//调用1
obj->ProcessEvent(func, &params);
//调用2
FFrame frame(nullptr, func, &params, nullptr, func->Children);
obj->CallFunction(frame, &params + func->ReturnValueOffset, func);
//调用3
FFrame frame(nullptr, func, &params, nullptr, func->Children);
func->Invoke(obj, frame, &params + func->ReturnValueOffset);
```
#### 运行时修改类型
让我们继续扩宽一下思路之前已经详细讲解过了各大类型对象的构造过程最后常常都是到UE4CodeGen_Private里的调用。既然我们已经知道了它运行的逻辑那我们也可以仿照着来啊我们也可以在常规的类型系统注册流程执行完之后在游戏运行的半途过程中动态的去修改类型甚至注册类型因为说到底UE4编辑器也就是一个特殊点的游戏而已啊这种方式有点类似C#的emit的方式,用代码去生成代码然后再编译。这些方式理论上都是可以通的,我来提供一些思路用法,有兴趣的朋友可以自己去实现下,代码贴出来就太长了。
1. 修改UField的MetaData信息其实可以改变字段在编辑器中的显示信息。MetaData里有哪些字段可以在ObjectMacros.h中自己查看。
2. 动态修改UField的相应的各种Flags数据比如PropertyFlagsStructFlagsClassFlags等可以达成在编辑器里动态改变其显示行为的效果。
3. 动态添加删除UEnum对象里面的Names字段就可以动态给enum添加删除枚举项了。
4. 动态地给结构或类添加反射属性字段就可以在蓝图内创建具有不定字段的结构了。当然前提是在结构里预留好属性存放的内存这样UProperty的Offset才有值可指向。这么做现在想来好像也不知道能用来干嘛。
5. 同属性一样,其实参照对了流程,也可以动态的给蓝图里暴露函数。有时候这可以达成某种加密保护的奇效。
6. 可以动态的注册新结构动态的构造出来相应的UScriptStruct其实就可以了。
7. 动态注册新类其实也是可以的只不过UClass的构造稍微要麻烦点不过也没麻烦到哪去有需求了就自然能照着源码里的流程自己实现一个流程出来。
8. 再甚至其实某种程度上的用代码动态创建蓝图节点填充蓝图VM指令其实也是可行的。只不过想了想好像一般用不着上这种大手术。

BIN
03-UnrealEngine/Gameplay/UObject/Ue4Object生命周期.jpg (Stored with Git LFS) Normal file

Binary file not shown.

View File

@@ -0,0 +1,40 @@
# ClassFlags :
|Name |Feature |Trait |Value|Description |UCLASS |Related to UPROPERTY|
|------------------------------------|--------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------|--------------------|
|CLASS_Abstract |Blueprint | |0x00000001|指定这个类是抽象基类,不可实例化 |[Abstract](../Specifier/UCLASS/Blueprint/Abstract/Abstract.md) | |
|CLASS_Const |Blueprint |Inherit |0x00010000|该类的所有属性和函数都是const的也应该被暴露为const |[Const](../Specifier/UCLASS/Blueprint/Const/Const.md) | |
|CLASS_CompiledFromBlueprint |Blueprint | |0x00040000u|指定该类从蓝图的编译中创建 | | |
|CLASS_NewerVersionExists |Blueprint | |0x80000000u| | | |
|CLASS_NoExport |UHT | |0x00000100u|不暴露到C++头文件,不生成注册代码 |[NoExport](../Specifier/UCLASS/UHT/NoExport.md) | |
|CLASS_CustomConstructor |UHT | |0x00008000u|不创建一个默认构造函数只在C++环境下使用 |[CustomConstructor](../Specifier/UCLASS/UHT/CustomConstructor.md) | |
|CLASS_Deprecated |Editor |Inherit |0x02000000u|显示废弃警告 |[Deprecated](../Specifier/UCLASS/Development/Deprecated/Deprecated.md) | |
|CLASS_HideDropDown |Editor | |0x04000000u|类不在右键选择框中显示 |[HideDropDown](../Specifier/UCLASS/TypePicker/HideDropDown/HideDropDown.md) | |
|CLASS_EditInlineNew |Editor | |0x00001000u|对象可以通过EditinlineNew按钮构造 |[EditInlineNew](../Specifier/UCLASS/Instance/EditInlineNew/EditInlineNew.md), [NotEditInlineNew](../Specifier/UCLASS/Instance/NotEditInlineNew.md) | |
|CLASS_Hidden |Editor | |0x01000000u|不在编辑器的类浏览器和edit inline new中显示 | | |
|CLASS_CollapseCategories |Editor | |0x00002000u|属性在展示时不分目录 |[CollapseCategories](../Specifier/UCLASS/Category/CollapseCategories/CollapseCategories.md), [DontCollapseCategories](../Specifier/UCLASS/Category/DontCollapseCategories.md) | |
|CLASS_NotPlaceable |Behavior |Inherit |0x00000200u|不能被放置在场景中 |[Deprecated](../Specifier/UCLASS/Development/Deprecated/Deprecated.md), [NotPlaceable](../Specifier/UCLASS/Scene/NotPlaceable/NotPlaceable.md), [Placeable](../Specifier/UCLASS/Scene/Placeable/Placeable.md)| |
|CLASS_ReplicationDataIsSetUp |Behavior | |0x00000800u|是否在该类仍然需要调用SetUpRuntimeReplicationData | | |
|CLASS_MinimalAPI |DllExport | |0x00080000u|指定该类的最小导出,只导出获得类指针的函数 |[MinimalAPI](../Specifier/UCLASS/UHT/MinimalAPI/MinimalAPI.md) | |
|CLASS_RequiredAPI |DllExport |DefaultC++, Internal |0x00100000u|指定该类必须具有DLL导出导出所有函数和属性 |[UCLASS()](../Specifier/UCLASS/UHT/UCLASS().md) | |
| |DllExport | | | | | |
|CLASS_DefaultToInstanced |LoadConstruct |Inherit |0x00200000u|指定引用到该类的所有引用都默认创建个实例对象 |[DefaultToInstanced](../Specifier/UCLASS/Instance/DefaultToInstanced/DefaultToInstanced.md) | |
|CLASS_HasInstancedReference |LoadConstruct |Inherit |0x00800000u|类拥有组件属性 | | |
|CLASS_Parsed |LoadConstruct | |0x00000010u|成功解析完成 | | |
|CLASS_TokenStreamAssembled |LoadConstruct |DefaultC++ |0x00400000u|指定父类的TokenStream已经被成功合并到自身类上 |[UCLASS()](../Specifier/UCLASS/UHT/UCLASS().md) | |
|CLASS_LayoutChanging |LoadConstruct | | |指定该类的内存布局已经被改变因此目前还不能创建CDO | | |
|CLASS_Constructed |LoadConstruct |DefaultC++ |0x20000000u|类已经被构造完成 |[UCLASS()](../Specifier/UCLASS/UHT/UCLASS().md) | |
|CLASS_NeedsDeferredDependencyLoading|LoadConstruct |Inherit | |指定该类需要延迟依赖加载 |[NeedsDeferredDependencyLoading](../Specifier/UCLASS/Blueprint/NeedsDeferredDependencyLoading.md) | |
|CLASS_Transient |LoadConstruct |Inherit |0x00000008u|透明的,在序列化的时候被跳过 |[Transient](../Specifier/UCLASS/Serialization/Transient/Transient.md), [NonTransient](../Specifier/UCLASS/Serialization/NonTransient.md) | |
|CLASS_MatchedSerializers |LoadConstruct |DefaultC++, Internal |0x00000020u| |[UCLASS()](../Specifier/UCLASS/UHT/UCLASS().md), [MatchedSerializers](../Specifier/UCLASS/Serialization/MatchedSerializers/MatchedSerializers.md) | |
|CLASS_Native |Traits |DefaultC++ |0x00000080u|指定为原生类C++里创建的类 |[UCLASS()](../Specifier/UCLASS/UHT/UCLASS().md) | |
|CLASS_Intrinsic |Traits |DefaultC++ |0x10000000u|类在C++中定义且没有UHT生成的代码 |[Intrinsic](../Specifier/UCLASS/UHT/Intrinsic.md), [UCLASS()](../Specifier/UCLASS/UHT/UCLASS().md) | |
|CLASS_Interface |Traits | |0x00004000u|该类是一个接口 |[Interface](../Specifier/UCLASS/UHT/Interface.md) | |
|CLASS_Optional |Traits |Inherit |0x00000010u|This object type may not be available in certain context. (i.e. game runtime or in certain configuration). Optional class data is saved separately to other object types. (i.e. might use sidecar files) |[Optional](../Specifier/UCLASS/Serialization/Optional/Optional.md) | |
|CLASS_Config |Config |Inherit |0x00000004u|在构造的时候载入对象的config配置 | | |
|CLASS_DefaultConfig |Config |Inherit |0x00000002u|保存对象配置到DefaultXXX.ini而不是Local必须和CLASS_Config连用 |[DefaultConfig](../Specifier/UCLASS/Config/DefaultConfig/DefaultConfig.md) | |
|CLASS_ProjectUserConfig |Config |Inherit |0x00000040u|指定settings的config文件保存在Project/User*.ini 和CLASS_GlobalUserConfig类似 |[ProjectUserConfig](../Specifier/UCLASS/Config/ProjectUserConfig/ProjectUserConfig.md) | |
|CLASS_PerObjectConfig |Config |Inherit |0x00000400u|对每个对象进行配置,而不是在类级别 |[PerObjectConfig](../Specifier/UCLASS/Config/PerObjectConfig.md) | |
|CLASS_GlobalUserConfig |Config |Inherit |0x08000000u|类Setttings被保存到<AppData>/..../Blah.ini |[GlobalUserConfig](../Specifier/UCLASS/Config/GlobalUserConfig/GlobalUserConfig.md) | |
|CLASS_ConfigDoNotCheckDefaults |Config |Inherit |0x40000000u|指定对象配置将不会检查base/defaults ini |[ConfigDoNotCheckDefaults](../Specifier/UCLASS/Config/ConfigDoNotCheckDefaults.md) | |
|HasCustomFieldNotify | | | | |[CustomFieldNotify](../Specifier/UCLASS/UHT/CustomFieldNotify.md) | |

View File

@@ -0,0 +1,7 @@
# CLASS_Abstract
Value: 0x00000001
Description: 指定这个类是抽象基类,不可实例化
Feature: Blueprint
Status: Not started
UCLASS: Abstract (../../Specifier/UCLASS/Abstract.md)

View File

@@ -0,0 +1,7 @@
# CLASS_CollapseCategories
Value: 0x00002000u
Description: 属性在展示时不分目录
Feature: Editor
Status: Not started
UCLASS: CollapseCategories (../../Specifier/UCLASS/CollapseCategories.md), DontCollapseCategories (../../Specifier/UCLASS/DontCollapseCategories.md)

View File

@@ -0,0 +1,6 @@
# CLASS_CompiledFromBlueprint
Value: 0x00040000u
Description: 指定该类从蓝图的编译中创建
Feature: Blueprint
Status: Not started

View File

@@ -0,0 +1,7 @@
# CLASS_Config
Value: 0x00000004u
Description: 在构造的时候载入对象的config配置
Feature: Config
Status: Not started
Trait: Inherit

View File

@@ -0,0 +1,8 @@
# CLASS_ConfigDoNotCheckDefaults
Value: 0x40000000u
Description: 指定对象配置将不会检查base/defaults ini
Feature: Config
Status: Not started
Trait: Inherit
UCLASS: ConfigDoNotCheckDefaults (../../Specifier/UCLASS/ConfigDoNotCheckDefaults.md)

View File

@@ -0,0 +1,8 @@
# CLASS_Const
Value: 0x00010000
Description: 该类的所有属性和函数都是const的也应该被暴露为const
Feature: Blueprint
Status: Not started
Trait: Inherit
UCLASS: Const (../../Specifier/UCLASS/Const.md)

View File

@@ -0,0 +1,8 @@
# CLASS_Constructed
Value: 0x20000000u
Description: 类已经被构造完成
Feature: LoadConstruct
Status: Not started
Trait: DefaultC++
UCLASS: UCLASS() (../../Specifier/UCLASS/UCLASS().md)

View File

@@ -0,0 +1,7 @@
# CLASS_CustomConstructor
Value: 0x00008000u
Description: 不创建一个默认构造函数只在C++环境下使用
Feature: UHT
Status: Desprecated
UCLASS: CustomConstructor (../../Specifier/UCLASS/CustomConstructor.md)

View File

@@ -0,0 +1,8 @@
# CLASS_DefaultConfig
Value: 0x00000002u
Description: 保存对象配置到DefaultXXX.ini而不是Local必须和CLASS_Config连用
Feature: Config
Status: Not started
Trait: Inherit
UCLASS: DefaultConfig (../../Specifier/UCLASS/DefaultConfig.md)

View File

@@ -0,0 +1,8 @@
# CLASS_DefaultToInstanced
Value: 0x00200000u
Description: 指定引用到该类的所有引用都默认创建个实例对象
Feature: LoadConstruct
Status: Not started
Trait: Inherit
UCLASS: DefaultToInstanced (../../Specifier/UCLASS/DefaultToInstanced.md)

View File

@@ -0,0 +1,8 @@
# CLASS_Deprecated
Value: 0x02000000u
Description: 显示废弃警告
Feature: Editor
Status: Not started
Trait: Inherit
UCLASS: Deprecated (../../Specifier/UCLASS/Deprecated.md)

View File

@@ -0,0 +1,7 @@
# CLASS_EditInlineNew
Value: 0x00001000u
Description: 对象可以通过EditinlineNew按钮构造
Feature: Editor
Status: Not started
UCLASS: EditInlineNew (../../Specifier/UCLASS/EditInlineNew.md), NotEditInlineNew (../../Specifier/UCLASS/NotEditInlineNew.md)

View File

@@ -0,0 +1,8 @@
# CLASS_GlobalUserConfig
Value: 0x08000000u
Description: 类Setttings被保存到<AppData>/..../Blah.ini
Feature: Config
Status: Not started
Trait: Inherit
UCLASS: GlobalUserConfig (../../Specifier/UCLASS/GlobalUserConfig.md)

View File

@@ -0,0 +1,7 @@
# CLASS_HasInstancedReference
Value: 0x00800000u
Description: 类拥有组件属性
Feature: LoadConstruct
Status: Not started
Trait: Inherit

View File

@@ -0,0 +1,6 @@
# CLASS_Hidden
Value: 0x01000000u
Description: 不在编辑器的类浏览器和edit inline new中显示
Feature: Editor
Status: Not started

View File

@@ -0,0 +1,7 @@
# CLASS_HideDropDown
Value: 0x04000000u
Description: 类不在右键选择框中显示
Feature: Editor
Status: Not started
UCLASS: HideDropDown (../../Specifier/UCLASS/HideDropDown.md)

View File

@@ -0,0 +1,7 @@
# CLASS_Interface
Value: 0x00004000u
Description: 该类是一个接口
Feature: Traits
Status: Not started
UCLASS: Interface (../../Specifier/UCLASS/Interface.md)

View File

@@ -0,0 +1,8 @@
# CLASS_Intrinsic
Value: 0x10000000u
Description: 类在C++中定义且没有UHT生成的代码
Feature: Traits
Status: Not started
Trait: DefaultC++
UCLASS: Intrinsic (../../Specifier/UCLASS/Intrinsic.md), UCLASS() (../../Specifier/UCLASS/UCLASS().md)

View File

@@ -0,0 +1,5 @@
# CLASS_LayoutChanging
Description: 指定该类的内存布局已经被改变因此目前还不能创建CDO
Feature: LoadConstruct
Status: Desprecated

View File

@@ -0,0 +1,9 @@
# CLASS_MatchedSerializers
Value: 0x00000020u
Feature: LoadConstruct
Status: Done
Trait: DefaultC++, Internal
UCLASS: UCLASS() (../../Specifier/UCLASS/UCLASS().md), MatchedSerializers (../../Specifier/UCLASS/MatchedSerializers.md)
在UClass::IsSafeToSerializeToStructuredArchives中被使用只在NoExportTypes.h中使用标明采用结构序列化器。是否支持文本导入导出只在编辑器情况下使用。

View File

@@ -0,0 +1,7 @@
# CLASS_MinimalAPI
Value: 0x00080000u
Description: 指定该类的最小导出,只导出获得类指针的函数
Feature: DllExport
Status: Not started
UCLASS: MinimalAPI (../../Specifier/UCLASS/MinimalAPI.md)

View File

@@ -0,0 +1,8 @@
# CLASS_Native
Value: 0x00000080u
Description: 指定为原生类C++里创建的类
Feature: Traits
Status: Not started
Trait: DefaultC++
UCLASS: UCLASS() (../../Specifier/UCLASS/UCLASS().md)

View File

@@ -0,0 +1,7 @@
# CLASS_NeedsDeferredDependencyLoading
Description: 指定该类需要延迟依赖加载
Feature: LoadConstruct
Status: Not started
Trait: Inherit
UCLASS: NeedsDeferredDependencyLoading (../../Specifier/UCLASS/NeedsDeferredDependencyLoading.md)

View File

@@ -0,0 +1,5 @@
# CLASS_NewerVersionExists
Value: 0x80000000u
Feature: Blueprint
Status: Not started

View File

@@ -0,0 +1,7 @@
# CLASS_NoExport
Value: 0x00000100u
Description: 不暴露到C++头文件,不生成注册代码
Feature: UHT
Status: Desprecated
UCLASS: NoExport (../../Specifier/UCLASS/NoExport.md)

View File

@@ -0,0 +1,8 @@
# CLASS_NotPlaceable
Value: 0x00000200u
Description: 不能被放置在场景中
Feature: Behavior
Status: Not started
Trait: Inherit
UCLASS: Deprecated (../../Specifier/UCLASS/Deprecated.md), NotPlaceable (../../Specifier/UCLASS/NotPlaceable.md), Placeable (../../Specifier/UCLASS/Placeable.md)

View File

@@ -0,0 +1,8 @@
# CLASS_Optional
Value: 0x00000010u
Description: This object type may not be available in certain context. (i.e. game runtime or in certain configuration). Optional class data is saved separately to other object types. (i.e. might use sidecar files)
Feature: Traits
Status: Not started
Trait: Inherit
UCLASS: Optional (../../Specifier/UCLASS/Optional.md)

View File

@@ -0,0 +1,6 @@
# CLASS_Parsed
Value: 0x00000010u
Description: 成功解析完成
Feature: LoadConstruct
Status: Desprecated

View File

@@ -0,0 +1,8 @@
# CLASS_PerObjectConfig
Value: 0x00000400u
Description: 对每个对象进行配置,而不是在类级别
Feature: Config
Status: Not started
Trait: Inherit
UCLASS: PerObjectConfig (../../Specifier/UCLASS/PerObjectConfig.md)

View File

@@ -0,0 +1,9 @@
# CLASS_ProjectUserConfig
Value: 0x00000040u
Description: 指定settings的config文件保存在Project/User*.ini
和CLASS_GlobalUserConfig类似
Feature: Config
Status: Not started
Trait: Inherit
UCLASS: ProjectUserConfig (../../Specifier/UCLASS/ProjectUserConfig.md)

View File

@@ -0,0 +1,6 @@
# CLASS_ReplicationDataIsSetUp
Value: 0x00000800u
Description: 是否在该类仍然需要调用SetUpRuntimeReplicationData
Feature: Behavior
Status: Not started

View File

@@ -0,0 +1,10 @@
# CLASS_RequiredAPI
Value: 0x00100000u
Description: 指定该类必须具有DLL导出导出所有函数和属性
Feature: DllExport
Status: Not started
Trait: DefaultC++, Internal
UCLASS: UCLASS() (../../Specifier/UCLASS/UCLASS().md)
内部标记。标明这个类有用MODULENAME_API修饰会导出函数和属性。如果不写就不会有这个标记。

View File

@@ -0,0 +1,8 @@
# CLASS_TokenStreamAssembled
Value: 0x00400000u
Description: 指定父类的TokenStream已经被成功合并到自身类上
Feature: LoadConstruct
Status: Not started
Trait: DefaultC++
UCLASS: UCLASS() (../../Specifier/UCLASS/UCLASS().md)

View File

@@ -0,0 +1,8 @@
# CLASS_Transient
Value: 0x00000008u
Description: 透明的,在序列化的时候被跳过
Feature: LoadConstruct
Status: Not started
Trait: Inherit
UCLASS: Transient (../../Specifier/UCLASS/Transient.md), NonTransient (../../Specifier/UCLASS/NonTransient.md)

View File

@@ -0,0 +1,4 @@
# HasCustomFieldNotify
Status: Not started
UCLASS: CustomFieldNotify (../../Specifier/UCLASS/CustomFieldNotify.md)

View File

@@ -0,0 +1,6 @@
# EnumFlags :
| Name | Feature | Value | Description | UENUM | UENUM 1 |
| ------------------ | ------- | ---------- | ------------------------------------------------------- | ----- | ------------------------------------------ |
| Flags | Trait | 0x00000001 | Whether the UEnum represents a set of flags | | [Flags](../Specifier/UENUM/Flags/Flags.md) |
| NewerVersionExists | Trait | 0x00000002 | If set, this UEnum has been replaced by a newer version | | |

View File

@@ -0,0 +1,6 @@
# Flags
Value: 0x00000001
Description: Whether the UEnum represents a set of flags
Feature: Trait
UENUM 1: Flags (../../Specifier/UENUM/Flags.md)

View File

@@ -0,0 +1,5 @@
# NewerVersionExists
Value: 0x00000002
Description: If set, this UEnum has been replaced by a newer version
Feature: Trait

View File

@@ -0,0 +1,33 @@
# FunctionFlags :
|Name |Feature |Value |Description|UFUNCTION/UDELEGATE |UFUNCTION/UDELEGATE 1 |USTRUCT |
|------------------------------------|--------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------|
|FUNC_Final |Trait |0x00000001 |Function is final (prebindable, non-overridable function).|[SealedEvent](../Specifier/UFUNCTION/Blueprint/SealedEvent/SealedEvent.md) | | |
|FUNC_RequiredAPI |Dll |0x00000002 |Indicates this function is DLL exported/imported.| | | |
|FUNC_BlueprintAuthorityOnly |Network |0x00000004 |Function will only run if the object has network authority|[BlueprintAuthorityOnly](../Specifier/UFUNCTION/Network/BlueprintAuthorityOnly/BlueprintAuthorityOnly.md) | | |
|FUNC_BlueprintCosmetic |Network |0x00000008 |Function is cosmetic in nature and should not be invoked on dedicated servers|[BlueprintCosmetic](../Specifier/UFUNCTION/Network/BlueprintCosmetic/BlueprintCosmetic.md) | | |
|FUNC_Net |Network |0x00000040 |Function is network-replicated.|[Client](../Specifier/UFUNCTION/Network/Client/Client.md), [NetMulticast](../Specifier/UFUNCTION/Network/NetMulticast/NetMulticast.md), [Server](../Specifier/UFUNCTION/Network/Server/Server.md), [ServiceRequest](../Specifier/UFUNCTION/Network/ServiceRequest.md), [ServiceResponse](../Specifier/UFUNCTION/Network/ServiceResponse.md)| | |
|FUNC_NetReliable |Network |0x00000080 |Function should be sent reliably on the network.|[Reliable](../Specifier/UFUNCTION/Network/Reliable.md), [ServiceRequest](../Specifier/UFUNCTION/Network/ServiceRequest.md), [ServiceResponse](../Specifier/UFUNCTION/Network/ServiceResponse.md) | | |
|FUNC_NetRequest |Network |0x00000100 |Function is sent to a net service|[ServiceRequest](../Specifier/UFUNCTION/Network/ServiceRequest.md) | | |
|FUNC_Exec |Trait |0x00000200 |Executable from command line.|[Exec](../Specifier/UFUNCTION/Exec/Exec.md) | | |
|FUNC_Native |Trait |0x00000400 |Native function.|[BlueprintImplementableEvent](../Specifier/UFUNCTION/Blueprint/BlueprintImplementableEvent/BlueprintImplementableEvent.md) | | |
|FUNC_Event |Trait |0x00000800 |Event function.|[BlueprintImplementableEvent](../Specifier/UFUNCTION/Blueprint/BlueprintImplementableEvent/BlueprintImplementableEvent.md), [BlueprintNativeEvent](../Specifier/UFUNCTION/Blueprint/BlueprintNativeEvent/BlueprintNativeEvent.md), [ServiceRequest](../Specifier/UFUNCTION/Network/ServiceRequest.md), [ServiceResponse](../Specifier/UFUNCTION/Network/ServiceResponse.md)| | |
|FUNC_NetResponse |Network |0x00001000 |Function response from a net service|[ServiceResponse](../Specifier/UFUNCTION/Network/ServiceResponse.md) | | |
|FUNC_Static | |0x00002000 |Static function.| | | |
|FUNC_NetMulticast |Network |0x00004000 |Function is networked multicast Server -> All Clients|[NetMulticast](../Specifier/UFUNCTION/Network/NetMulticast/NetMulticast.md) | | |
|FUNC_UbergraphFunction |Blueprint |0x00008000 |Function is used as the merge 'ubergraph' for a blueprint, only assigned when using the persistent 'ubergraph' frame| | | |
|FUNC_MulticastDelegate |Trait |0x00010000 |Function is a multi-cast delegate signature (also requires FUNC_Delegate to be set!)| | | |
|FUNC_Public |Trait |0x00020000 |Function is accessible in all classes (if overridden, parameters must remain unchanged).| | | |
|FUNC_Private |Trait |0x00040000 |Function is accessible only in the class it is defined in (cannot be overridden, but function name may be reused in subclasses. IOW: if overridden, parameters don't need to match, and Super.Func() cannot be accessed since it's private.)| | | |
|FUNC_Protected |Trait |0x00080000 |Function is accessible only in the class it is defined in and subclasses (if overridden, parameters much remain unchanged).| | | |
|FUNC_Delegate |Trait |0x00100000 |Function is delegate signature (either single-cast or multi-cast, depending on whether FUNC_MulticastDelegate is set.)| | | |
|FUNC_NetServer |Network |0x00200000 |Function is executed on servers (set by replication code if passes check)|[Server](../Specifier/UFUNCTION/Network/Server/Server.md) | | |
|FUNC_HasOutParms |Trait |0x00400000 |function has out (pass by reference) parameters| | | |
|FUNC_HasDefaults |Trait |0x00800000 |function has structs that contain defaults| | |[HasDefaults](../Specifier/USTRUCT/UHT/HasDefaults.md)|
|FUNC_NetClient |Network |0x01000000 |function is executed on clients|[Client](../Specifier/UFUNCTION/Network/Client/Client.md) | | |
|FUNC_DLLImport |Dll |0x02000000 |function is imported from a DLL| | | |
|FUNC_BlueprintCallable |Blueprint |0x04000000 |function can be called from blueprint code|[BlueprintGetter](../Specifier/UFUNCTION/Blueprint/BlueprintGetter.md), [BlueprintPure](../Specifier/UFUNCTION/Blueprint/BlueprintPure/BlueprintPure.md), [BlueprintSetter](../Specifier/UFUNCTION/Blueprint/BlueprintSetter.md), [BlueprintCallable](../Specifier/UFUNCTION/Blueprint/BlueprintCallable/BlueprintCallable.md)| | |
|FUNC_BlueprintEvent |Blueprint |0x08000000 |function can be overridden/implemented from a blueprint|[BlueprintImplementableEvent](../Specifier/UFUNCTION/Blueprint/BlueprintImplementableEvent/BlueprintImplementableEvent.md), [BlueprintNativeEvent](../Specifier/UFUNCTION/Blueprint/BlueprintNativeEvent/BlueprintNativeEvent.md) | | |
|FUNC_BlueprintPure |Blueprint |0x10000000 |function can be called from blueprint code, and is also pure (produces no side effects). If you set this, you should set FUNC_BlueprintCallable as well.|[BlueprintGetter](../Specifier/UFUNCTION/Blueprint/BlueprintGetter.md), [BlueprintPure](../Specifier/UFUNCTION/Blueprint/BlueprintPure/BlueprintPure.md) | | |
|FUNC_EditorOnly |Trait |0x20000000 |function can only be called from an editor scrippt.| | | |
|FUNC_Const |Trait |0x40000000 |function can be called from blueprint code, and only reads state (never writes state)| | | |
|FUNC_NetValidate |Network |0x80000000 |function must supply a _Validate implementation|[WithValidation](../Specifier/UFUNCTION/Network/WithValidation.md) | | |

View File

@@ -0,0 +1,6 @@
# FUNC_BlueprintAuthorityOnly
Value: 0x00000004
Description: Function will only run if the object has network authority
Feature: Network
UFUNCTION/UDELEGATE: BlueprintAuthorityOnly (../../Specifier/UFUNCTION/BlueprintAuthorityOnly.md)

View File

@@ -0,0 +1,6 @@
# FUNC_BlueprintCallable
Value: 0x04000000
Description: function can be called from blueprint code
Feature: Blueprint
UFUNCTION/UDELEGATE: BlueprintGetter (../../Specifier/UFUNCTION/BlueprintGetter.md), BlueprintPure (../../Specifier/UFUNCTION/BlueprintPure.md), BlueprintSetter (../../Specifier/UFUNCTION/BlueprintSetter.md), BlueprintCallable (../../Specifier/UFUNCTION/BlueprintCallable.md)

View File

@@ -0,0 +1,6 @@
# FUNC_BlueprintCosmetic
Value: 0x00000008
Description: Function is cosmetic in nature and should not be invoked on dedicated servers
Feature: Network
UFUNCTION/UDELEGATE: BlueprintCosmetic (../../Specifier/UFUNCTION/BlueprintCosmetic.md)

View File

@@ -0,0 +1,6 @@
# FUNC_BlueprintEvent
Value: 0x08000000
Description: function can be overridden/implemented from a blueprint
Feature: Blueprint
UFUNCTION/UDELEGATE: BlueprintImplementableEvent (../../Specifier/UFUNCTION/BlueprintImplementableEvent.md), BlueprintNativeEvent (../../Specifier/UFUNCTION/BlueprintNativeEvent.md)

View File

@@ -0,0 +1,6 @@
# FUNC_BlueprintPure
Value: 0x10000000
Description: function can be called from blueprint code, and is also pure (produces no side effects). If you set this, you should set FUNC_BlueprintCallable as well.
Feature: Blueprint
UFUNCTION/UDELEGATE: BlueprintGetter (../../Specifier/UFUNCTION/BlueprintGetter.md), BlueprintPure (../../Specifier/UFUNCTION/BlueprintPure.md)

View File

@@ -0,0 +1,5 @@
# FUNC_Const
Value: 0x40000000
Description: function can be called from blueprint code, and only reads state (never writes state)
Feature: Trait

View File

@@ -0,0 +1,5 @@
# FUNC_DLLImport
Value: 0x02000000
Description: function is imported from a DLL
Feature: Dll

View File

@@ -0,0 +1,5 @@
# FUNC_Delegate
Value: 0x00100000
Description: Function is delegate signature (either single-cast or multi-cast, depending on whether FUNC_MulticastDelegate is set.)
Feature: Trait

View File

@@ -0,0 +1,5 @@
# FUNC_EditorOnly
Value: 0x20000000
Description: function can only be called from an editor scrippt.
Feature: Trait

View File

@@ -0,0 +1,6 @@
# FUNC_Event
Value: 0x00000800
Description: Event function.
Feature: Trait
UFUNCTION/UDELEGATE: BlueprintImplementableEvent (../../Specifier/UFUNCTION/BlueprintImplementableEvent.md), BlueprintNativeEvent (../../Specifier/UFUNCTION/BlueprintNativeEvent.md), ServiceRequest (../../Specifier/UFUNCTION/ServiceRequest.md), ServiceResponse (../../Specifier/UFUNCTION/ServiceResponse.md)

View File

@@ -0,0 +1,6 @@
# FUNC_Exec
Value: 0x00000200
Description: Executable from command line.
Feature: Trait
UFUNCTION/UDELEGATE: Exec (../../Specifier/UFUNCTION/Exec.md)

View File

@@ -0,0 +1,6 @@
# FUNC_Final
Value: 0x00000001
Description: Function is final (prebindable, non-overridable function).
Feature: Trait
UFUNCTION/UDELEGATE: SealedEvent (../../Specifier/UFUNCTION/SealedEvent.md)

View File

@@ -0,0 +1,6 @@
# FUNC_HasDefaults
Value: 0x00800000
Description: function has structs that contain defaults
Feature: Trait
USTRUCT: HasDefaults (../../Specifier/USTRUCT/HasDefaults.md)

View File

@@ -0,0 +1,5 @@
# FUNC_HasOutParms
Value: 0x00400000
Description: function has out (pass by reference) parameters
Feature: Trait

View File

@@ -0,0 +1,5 @@
# FUNC_MulticastDelegate
Value: 0x00010000
Description: Function is a multi-cast delegate signature (also requires FUNC_Delegate to be set!)
Feature: Trait

View File

@@ -0,0 +1,6 @@
# FUNC_Native
Value: 0x00000400
Description: Native function.
Feature: Trait
UFUNCTION/UDELEGATE: BlueprintImplementableEvent (../../Specifier/UFUNCTION/BlueprintImplementableEvent.md)

View File

@@ -0,0 +1,6 @@
# FUNC_Net
Value: 0x00000040
Description: Function is network-replicated.
Feature: Network
UFUNCTION/UDELEGATE: Client (../../Specifier/UFUNCTION/Client.md), NetMulticast (../../Specifier/UFUNCTION/NetMulticast.md), Server (../../Specifier/UFUNCTION/Server.md), ServiceRequest (../../Specifier/UFUNCTION/ServiceRequest.md), ServiceResponse (../../Specifier/UFUNCTION/ServiceResponse.md)

View File

@@ -0,0 +1,6 @@
# FUNC_NetClient
Value: 0x01000000
Description: function is executed on clients
Feature: Network
UFUNCTION/UDELEGATE: Client (../../Specifier/UFUNCTION/Client.md)

View File

@@ -0,0 +1,6 @@
# FUNC_NetMulticast
Value: 0x00004000
Description: Function is networked multicast Server -> All Clients
Feature: Network
UFUNCTION/UDELEGATE: NetMulticast (../../Specifier/UFUNCTION/NetMulticast.md)

View File

@@ -0,0 +1,6 @@
# FUNC_NetReliable
Value: 0x00000080
Description: Function should be sent reliably on the network.
Feature: Network
UFUNCTION/UDELEGATE: Reliable (../../Specifier/UFUNCTION/Reliable.md), ServiceRequest (../../Specifier/UFUNCTION/ServiceRequest.md), ServiceResponse (../../Specifier/UFUNCTION/ServiceResponse.md)

View File

@@ -0,0 +1,6 @@
# FUNC_NetRequest
Value: 0x00000100
Description: Function is sent to a net service
Feature: Network
UFUNCTION/UDELEGATE: ServiceRequest (../../Specifier/UFUNCTION/ServiceRequest.md)

View File

@@ -0,0 +1,6 @@
# FUNC_NetResponse
Value: 0x00001000
Description: Function response from a net service
Feature: Network
UFUNCTION/UDELEGATE: ServiceResponse (../../Specifier/UFUNCTION/ServiceResponse.md)

View File

@@ -0,0 +1,6 @@
# FUNC_NetServer
Value: 0x00200000
Description: Function is executed on servers (set by replication code if passes check)
Feature: Network
UFUNCTION/UDELEGATE: Server (../../Specifier/UFUNCTION/Server.md)

View File

@@ -0,0 +1,6 @@
# FUNC_NetValidate
Value: 0x80000000
Description: function must supply a _Validate implementation
Feature: Network
UFUNCTION/UDELEGATE: WithValidation (../../Specifier/UFUNCTION/WithValidation.md)

View File

@@ -0,0 +1,5 @@
# FUNC_Private
Value: 0x00040000
Description: Function is accessible only in the class it is defined in (cannot be overridden, but function name may be reused in subclasses. IOW: if overridden, parameters don't need to match, and Super.Func() cannot be accessed since it's private.)
Feature: Trait

View File

@@ -0,0 +1,5 @@
# FUNC_Protected
Value: 0x00080000
Description: Function is accessible only in the class it is defined in and subclasses (if overridden, parameters much remain unchanged).
Feature: Trait

View File

@@ -0,0 +1,5 @@
# FUNC_Public
Value: 0x00020000
Description: Function is accessible in all classes (if overridden, parameters must remain unchanged).
Feature: Trait

View File

@@ -0,0 +1,5 @@
# FUNC_RequiredAPI
Value: 0x00000002
Description: Indicates this function is DLL exported/imported.
Feature: Dll

View File

@@ -0,0 +1,4 @@
# FUNC_Static
Value: 0x00002000
Description: Static function.

View File

@@ -0,0 +1,5 @@
# FUNC_UbergraphFunction
Value: 0x00008000
Description: Function is used as the merge 'ubergraph' for a blueprint, only assigned when using the persistent 'ubergraph' frame
Feature: Blueprint

View File

@@ -0,0 +1,12 @@
# ObjectMark :
|Name |Value |Description |
|------------------------------------|--------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|OBJECTMARK_NOMARK |0x00000000 |Zero, nothing |
|OBJECTMARK_Saved |0x00000004 |Object has been saved via SavePackage. Temporary. |
|OBJECTMARK_TagImp |0x00000008 |Temporary import tag in load/save. |
|OBJECTMARK_TagExp |0x00000010 |Temporary export tag in load/save. |
|OBJECTMARK_NotForClient |0x00000020 |Temporary save tag for client load flag. |
|OBJECTMARK_NotForServer |0x00000040 |Temporary save tag for server load flag. |
|OBJECTMARK_NotAlwaysLoadedForEditorGame|0x00000080 |Temporary save tag for editorgame load flag. |
|OBJECTMARK_EditorOnly |0x00000100 |Temporary editor only flag |
|OBJECTMARK_NotForTargetPlatform |0x00000200 |Temporary save tag for stripping objets based on TargetPlatform |

View File

@@ -0,0 +1,4 @@
# OBJECTMARK_EditorOnly
Value: 0x00000100
Description: Temporary editor only flag

View File

@@ -0,0 +1,4 @@
# OBJECTMARK_NOMARK
Value: 0x00000000
Description: Zero, nothing

View File

@@ -0,0 +1,4 @@
# OBJECTMARK_NotAlwaysLoadedForEditorGame
Value: 0x00000080
Description: Temporary save tag for editorgame load flag.

View File

@@ -0,0 +1,4 @@
# OBJECTMARK_NotForClient
Value: 0x00000020
Description: Temporary save tag for client load flag.

View File

@@ -0,0 +1,4 @@
# OBJECTMARK_NotForServer
Value: 0x00000040
Description: Temporary save tag for server load flag.

View File

@@ -0,0 +1,4 @@
# OBJECTMARK_NotForTargetPlatform
Value: 0x00000200
Description: Temporary save tag for stripping objets based on TargetPlatform

View File

@@ -0,0 +1,4 @@
# OBJECTMARK_Saved
Value: 0x00000004
Description: Object has been saved via SavePackage. Temporary.

View File

@@ -0,0 +1,4 @@
# OBJECTMARK_TagExp
Value: 0x00000010
Description: Temporary export tag in load/save.

View File

@@ -0,0 +1,4 @@
# OBJECTMARK_TagImp
Value: 0x00000008
Description: Temporary import tag in load/save.

View File

@@ -0,0 +1,54 @@
# PropertyFlags :
| Name | Feature | Value | Description | UPARAM | UPROPERTY |
| ---------------------------------- | ------------- | ------------------ | ------------------------------------------------------------ | ------------------------------------------------- | ------------------------------------------------------------ |
| CPF_Edit | Editor | 0x0000000000000001 | Property is user-settable in the editor. | | [EditAnywhere](../Specifier/UPROPERTY/DetaisPanel/EditAnywhere/EditAnywhere.md), [EditDefaultsOnly](../Specifier/UPROPERTY/DetaisPanel/EditDefaultsOnly.md), [EditInstanceOnly](../Specifier/UPROPERTY/DetaisPanel/EditInstanceOnly.md), [VisibleAnywhere](../Specifier/UPROPERTY/DetaisPanel/VisibleAnywhere.md), [VisibleDefaultsOnly](../Specifier/UPROPERTY/DetaisPanel/VisibleDefaultsOnly.md), [VisibleInstanceOnly](../Specifier/UPROPERTY/DetaisPanel/VisibleInstanceOnly.md), [Interp](../Specifier/UPROPERTY/DetaisPanel/Interp/Interp.md) |
| CPF_ConstParm | Trait | 0x0000000000000002 | This is a constant function parameter | Const (Specifier/UPARAM/Const.md) | |
| CPF_BlueprintVisible | Blueprint | 0x0000000000000004 | This property can be read by blueprint code | | [BlueprintReadWrite](../Specifier/UPROPERTY/Blueprint/BlueprintReadWrite/BlueprintReadWrite.md), [BlueprintReadOnly](../Specifier/UPROPERTY/Blueprint/BlueprintReadOnly/BlueprintReadOnly.md), [BlueprintSetter](../Specifier/UPROPERTY/Blueprint/BlueprintSetter.md), [BlueprintGetter](../Specifier/UPROPERTY/Blueprint/BlueprintGetter/BlueprintGetter.md), [Interp](../Specifier/UPROPERTY/DetaisPanel/Interp/Interp.md) |
| CPF_ExportObject | Serialization | 0x0000000000000008 | Object can be exported with actor. | | [Instanced](../Specifier/UPROPERTY/Instance/Instanced/Instanced.md), [Export](../Specifier/UPROPERTY/Serialization/Export/Export.md) |
| CPF_BlueprintReadOnly | Blueprint | 0x0000000000000010 | This property cannot be modified by blueprint code | | [BlueprintReadOnly](../Specifier/UPROPERTY/Blueprint/BlueprintReadOnly/BlueprintReadOnly.md), [BlueprintGetter](../Specifier/UPROPERTY/Blueprint/BlueprintGetter/BlueprintGetter.md) |
| CPF_Net | Network | 0x0000000000000020 | Property is relevant to network replication. | | [Replicated](../Specifier/UPROPERTY/Network/Replicated.md), [ReplicatedUsing](../Specifier/UPROPERTY/Network/ReplicatedUsing/ReplicatedUsing.md) |
| CPF_EditFixedSize | Editor | 0x0000000000000040 | Indicates that elements of an array can be modified, but its size cannot be changed. | | [EditFixedSize](../Specifier/UPROPERTY/DetaisPanel/EditFixedSize/EditFixedSize.md) |
| CPF_Parm | Function | 0x0000000000000080 | Function/When call parameter. | | |
| CPF_OutParm | Function | 0x0000000000000100 | Value is copied out after function call. | | |
| CPF_ZeroConstructor | Trait | 0x0000000000000200 | memset is fine for construction | | |
| CPF_ReturnParm | Function | 0x0000000000000400 | Return value. | | |
| CPF_DisableEditOnTemplate | Editor | 0x0000000000000800 | Disable editing of this property on an archetype/sub-blueprint | | [EditInstanceOnly](../Specifier/UPROPERTY/DetaisPanel/EditInstanceOnly.md), [VisibleInstanceOnly](../Specifier/UPROPERTY/DetaisPanel/VisibleInstanceOnly.md) |
| CPF_NonNullable | Trait | 0x0000000000001000 | Object property can never be null | | |
| CPF_Transient | Serialization | 0x0000000000002000 | Property is transient: shouldn't be saved or loaded, except for Blueprint CDOs. | | [Transient](../Specifier/UPROPERTY/Serialization/Transient/Transient.md) |
| CPF_Config | Config | 0x0000000000004000 | Property should be loaded/saved as permanent profile. | | [Config](../Specifier/UPROPERTY/Config/Config.md) |
| CPF_RequiredParm | Editor | 0x0000000000008000 | Parameter must be linked explicitly in blueprint. Leaving the parameter out results in a compile error. | Required (Specifier/UPARAM/Required.md) | |
| CPF_DisableEditOnInstance | Editor | 0x0000000000010000 | Disable editing on an instance of this class | | [EditDefaultsOnly](../Specifier/UPROPERTY/DetaisPanel/EditDefaultsOnly.md), [VisibleDefaultsOnly](../Specifier/UPROPERTY/DetaisPanel/VisibleDefaultsOnly.md) |
| CPF_EditConst | Editor | 0x0000000000020000 | Property is uneditable in the editor. | | [VisibleAnywhere](../Specifier/UPROPERTY/DetaisPanel/VisibleAnywhere.md) |
| CPF_GlobalConfig | Config | 0x0000000000040000 | Load config from base class, not subclass. | | [GlobalConfig](../Specifier/UPROPERTY/Config/GlobalConfig/GlobalConfig.md) |
| CPF_InstancedReference | Trait | 0x0000000000080000 | Property is a component references. | | [Instanced](../Specifier/UPROPERTY/Instance/Instanced/Instanced.md) |
| CPF_DuplicateTransient | Serialization | 0x0000000000200000 | Property should always be reset to the default value during any type of duplication (copy/paste, binary duplication, etc.) | | [DuplicateTransient](../Specifier/UPROPERTY/Serialization/DuplicateTransient/DuplicateTransient.md) |
| CPF_SaveGame | Serialization | 0x0000000001000000 | Property should be serialized for save games, this is only checked for game-specific archives with ArIsSaveGame | | |
| CPF_NoClear | Editor | 0x0000000002000000 | Hide clear button. | | [NoClear](../Specifier/UPROPERTY/DetaisPanel/NoClear/NoClear.md) |
| CPF_ReferenceParm | Function | 0x0000000008000000 | Value is passed by reference; CPF_OutParam and CPF_Param should also be set. | ref (Specifier/UPARAM/ref.md) | |
| CPF_BlueprintAssignable | Blueprint | 0x0000000010000000 | MC Delegates only. Property should be exposed for assigning in blueprint code | | [BlueprintAssignable](../Specifier/UPROPERTY/Blueprint/BlueprintAssignable/BlueprintAssignable.md) |
| CPF_Deprecated | Trait | 0x0000000020000000 | Property is deprecated. Read it from an archive, but don't save it. | | |
| CPF_IsPlainOldData | Trait | 0x0000000040000000 | If this is set, then the property can be memcopied instead of CopyCompleteValue / CopySingleValue | | |
| CPF_RepSkip | Network | 0x0000000080000000 | Not replicated. For non replicated properties in replicated structs | NotReplicated (Specifier/UPARAM/NotReplicated.md) | [NotReplicated](../Specifier/UPROPERTY/Network/NotReplicated.md) |
| CPF_RepNotify | Network | 0x0000000100000000 | Notify actors when a property is replicated | | [ReplicatedUsing](../Specifier/UPROPERTY/Network/ReplicatedUsing/ReplicatedUsing.md) |
| CPF_Interp | Editor | 0x0000000200000000 | interpolatable property for use with cinematics | | [Interp](../Specifier/UPROPERTY/DetaisPanel/Interp/Interp.md) |
| CPF_NonTransactional | Editor | 0x0000000400000000 | Property isn't transacted | | [NonTransactional](../Specifier/UPROPERTY/DetaisPanel/NonTransactional/NonTransactional.md) |
| CPF_EditorOnly | Editor | 0x0000000800000000 | Property should only be loaded in the editor | | |
| CPF_NoDestructor | Trait | 0x0000001000000000 | No destructor | | |
| CPF_AutoWeak | Trait | 0x0000004000000000 | Only used for weak pointers, means the export type is autoweak | | |
| CPF_ContainsInstancedReference | Trait | 0x0000008000000000 | Property contains component references. | | |
| CPF_AssetRegistrySearchable | Editor | 0x0000010000000000 | asset instances will add properties with this flag to the asset registry automatically | | [AssetRegistrySearchable](../Specifier/UPROPERTY/Asset/AssetRegistrySearchable/AssetRegistrySearchable.md) |
| CPF_SimpleDisplay | Editor | 0x0000020000000000 | The property is visible by default in the editor details view | | [SimpleDisplay](../Specifier/UPROPERTY/DetaisPanel/SimpleDisplay/SimpleDisplay.md) |
| CPF_AdvancedDisplay | Editor | 0x0000040000000000 | The property is advanced and not visible by default in the editor details view | | [AdvancedDisplay](../Specifier/UPROPERTY/DetaisPanel/AdvancedDisplay/AdvancedDisplay.md) |
| CPF_Protected | Editor | 0x0000080000000000 | property is protected from the perspective of script | | |
| CPF_BlueprintCallable | Blueprint | 0x0000100000000000 | MC Delegates only. Property should be exposed for calling in blueprint code | | [BlueprintCallable](../Specifier/UPROPERTY/Blueprint/BlueprintCallable/BlueprintCallable.md) |
| CPF_BlueprintAuthorityOnly | Network | 0x0000200000000000 | MC Delegates only. This delegate accepts (only in blueprint) only events with BlueprintAuthorityOnly. | | [BlueprintAuthorityOnly](../Specifier/UPROPERTY/Blueprint/BlueprintAuthorityOnly/BlueprintAuthorityOnly.md) |
| CPF_TextExportTransient | Serialization | 0x0000400000000000 | Property shouldn't be exported to text format (e.g. copy/paste) | | [TextExportTransient](../Specifier/UPROPERTY/Serialization/TextExportTransient.md) |
| CPF_NonPIEDuplicateTransient | Serialization | 0x0000800000000000 | Property should only be copied in PIE | | [NonPIEDuplicateTransient](../Specifier/UPROPERTY/Serialization/NonPIEDuplicateTransient/NonPIEDuplicateTransient.md) |
| CPF_ExposeOnSpawn | Trait | 0x0001000000000000 | Property is exposed on spawn | | |
| CPF_PersistentInstance | Serialization | 0x0002000000000000 | A object referenced by the property is duplicated like a component. (Each actor should have an own instance.) | | [Instanced](../Specifier/UPROPERTY/Instance/Instanced/Instanced.md) |
| CPF_UObjectWrapper | Trait | 0x0004000000000000 | Property was parsed as a wrapper class like TSubclassOf<T>, FScriptInterface etc., rather than a USomething* | | |
| CPF_HasGetValueTypeHash | Trait | 0x0008000000000000 | This property can generate a meaningful hash value. | | |
| CPF_NativeAccessSpecifierPublic | Trait | 0x0010000000000000 | Public native access specifier | | |
| CPF_NativeAccessSpecifierProtected | Trait | 0x0020000000000000 | Protected native access specifier | | |
| CPF_NativeAccessSpecifierPrivate | Trait | 0x0040000000000000 | Private native access specifier | | |
| CPF_SkipSerialization | Serialization | 0x0080000000000000 | Property shouldn't be serialized, can still be exported to text | | [SkipSerialization](../Specifier/UPROPERTY/Serialization/SkipSerialization/SkipSerialization.md) |

View File

@@ -0,0 +1,6 @@
# CPF_AdvancedDisplay
Value: 0x0000040000000000
Description: The property is advanced and not visible by default in the editor details view
Feature: Editor
UPROPERTY: AdvancedDisplay (../../Specifier/UPROPERTY/AdvancedDisplay.md)

View File

@@ -0,0 +1,6 @@
# CPF_AssetRegistrySearchable
Value: 0x0000010000000000
Description: asset instances will add properties with this flag to the asset registry automatically
Feature: Editor
UPROPERTY: AssetRegistrySearchable (../../Specifier/UPROPERTY/AssetRegistrySearchable.md)

View File

@@ -0,0 +1,5 @@
# CPF_AutoWeak
Value: 0x0000004000000000
Description: Only used for weak pointers, means the export type is autoweak
Feature: Trait

View File

@@ -0,0 +1,6 @@
# CPF_BlueprintAssignable
Value: 0x0000000010000000
Description: MC Delegates only. Property should be exposed for assigning in blueprint code
Feature: Blueprint
UPROPERTY: BlueprintAssignable (../../Specifier/UPROPERTY/BlueprintAssignable.md)

View File

@@ -0,0 +1,6 @@
# CPF_BlueprintAuthorityOnly
Value: 0x0000200000000000
Description: MC Delegates only. This delegate accepts (only in blueprint) only events with BlueprintAuthorityOnly.
Feature: Network
UPROPERTY: BlueprintAuthorityOnly (../../Specifier/UPROPERTY/BlueprintAuthorityOnly.md)

View File

@@ -0,0 +1,6 @@
# CPF_BlueprintCallable
Value: 0x0000100000000000
Description: MC Delegates only. Property should be exposed for calling in blueprint code
Feature: Blueprint
UPROPERTY: BlueprintCallable (../../Specifier/UPROPERTY/BlueprintCallable.md)

View File

@@ -0,0 +1,6 @@
# CPF_BlueprintReadOnly
Value: 0x0000000000000010
Description: This property cannot be modified by blueprint code
Feature: Blueprint
UPROPERTY: BlueprintReadOnly (../../Specifier/UPROPERTY/BlueprintReadOnly.md), BlueprintGetter (../../Specifier/UPROPERTY/BlueprintGetter.md)

View File

@@ -0,0 +1,6 @@
# CPF_BlueprintVisible
Value: 0x0000000000000004
Description: This property can be read by blueprint code
Feature: Blueprint
UPROPERTY: BlueprintReadWrite (../../Specifier/UPROPERTY/BlueprintReadWrite.md), BlueprintReadOnly (../../Specifier/UPROPERTY/BlueprintReadOnly.md), BlueprintSetter (../../Specifier/UPROPERTY/BlueprintSetter.md), BlueprintGetter (../../Specifier/UPROPERTY/BlueprintGetter.md), Interp (../../Specifier/UPROPERTY/Interp.md)

View File

@@ -0,0 +1,6 @@
# CPF_Config
Value: 0x0000000000004000
Description: Property should be loaded/saved as permanent profile.
Feature: Config
UPROPERTY: Config (../../Specifier/UPROPERTY/Config.md)

View File

@@ -0,0 +1,6 @@
# CPF_ConstParm
Value: 0x0000000000000002
Description: This is a constant function parameter
Feature: Trait
UPARAM: Const (../../Specifier/UPARAM/Const.md)

View File

@@ -0,0 +1,5 @@
# CPF_ContainsInstancedReference
Value: 0x0000008000000000
Description: Property contains component references.
Feature: Trait

View File

@@ -0,0 +1,5 @@
# CPF_Deprecated
Value: 0x0000000020000000
Description: Property is deprecated. Read it from an archive, but don't save it.
Feature: Trait

View File

@@ -0,0 +1,6 @@
# CPF_DisableEditOnInstance
Value: 0x0000000000010000
Description: Disable editing on an instance of this class
Feature: Editor
UPROPERTY: EditDefaultsOnly (../../Specifier/UPROPERTY/EditDefaultsOnly.md), VisibleDefaultsOnly (../../Specifier/UPROPERTY/VisibleDefaultsOnly.md)

View File

@@ -0,0 +1,6 @@
# CPF_DisableEditOnTemplate
Value: 0x0000000000000800
Description: Disable editing of this property on an archetype/sub-blueprint
Feature: Editor
UPROPERTY: EditInstanceOnly (../../Specifier/UPROPERTY/EditInstanceOnly.md), VisibleInstanceOnly (../../Specifier/UPROPERTY/VisibleInstanceOnly.md)

View File

@@ -0,0 +1,6 @@
# CPF_DuplicateTransient
Value: 0x0000000000200000
Description: Property should always be reset to the default value during any type of duplication (copy/paste, binary duplication, etc.)
Feature: Serialization
UPROPERTY: DuplicateTransient (../../Specifier/UPROPERTY/DuplicateTransient.md)

View File

@@ -0,0 +1,6 @@
# CPF_Edit
Value: 0x0000000000000001
Description: Property is user-settable in the editor.
Feature: Editor
UPROPERTY: EditAnywhere (../../Specifier/UPROPERTY/EditAnywhere.md), EditDefaultsOnly (../../Specifier/UPROPERTY/EditDefaultsOnly.md), EditInstanceOnly (../../Specifier/UPROPERTY/EditInstanceOnly.md), VisibleAnywhere (../../Specifier/UPROPERTY/VisibleAnywhere.md), VisibleDefaultsOnly (../../Specifier/UPROPERTY/VisibleDefaultsOnly.md), VisibleInstanceOnly (../../Specifier/UPROPERTY/VisibleInstanceOnly.md), Interp (../../Specifier/UPROPERTY/Interp.md)

View File

@@ -0,0 +1,6 @@
# CPF_EditConst
Value: 0x0000000000020000
Description: Property is uneditable in the editor.
Feature: Editor
UPROPERTY: VisibleAnywhere (../../Specifier/UPROPERTY/VisibleAnywhere.md)

Some files were not shown because too many files have changed in this diff Show More