1. 常用
这些关键字可以用于定义各种元数据,包括变量的可见性、编辑性、限制条件、默认值、本地化、复制等等。具体使用哪些关键字取决于具体的需求。
以下是UE4中用于定义蓝图变量的元数据(metadata)的所有关键字及其解释和作用:
- BlueprintReadOnly:表示该变量只能在蓝图中进行读取操作,不能在蓝图中进行写入操作。常用于定义只读变量。
- BlueprintReadWrite:表示该变量可以在蓝图编辑器中进行读写操作,包括在实例化蓝图时可以在Details面板中进行编辑,也可以在蓝图中进行读写操作。常用于定义可读写变量。
- EditAnywhere:表示该变量可以在蓝图编辑器中进行读写操作,包括在实例化蓝图时可以在Details面板中进行编辑,也可以在蓝图中进行读写操作。常用于定义可编辑变量。
- EditDefaultsOnly:表示该变量只能在蓝图类的默认值中进行编辑,而不能在实例化蓝图时进行编辑。常用于定义只能在类级别上编辑的变量。
- Category:表示该变量在蓝图编辑器中显示在指定的类别下。常用于将变量分组显示。
- DisplayName:表示该变量在蓝图编辑器中显示的名称。常用于自定义变量的显示名称。
- Tooltip:表示该变量在蓝图编辑器中显示的提示信息。常用于提供变量的说明和提示信息。
- EditCondition:表示该变量的编辑条件,只有在满足特定条件时才会在蓝图编辑器中显示。常用于根据其他变量的值来控制变量的可见性。
- meta:用于定义其他元数据,可以包含多个关键字和参数。常用于自定义元数据。
- SaveGame:表示该变量在保存游戏状态时会被保存。常用于需要保存的变量。
- AdvancedDisplay:表示该变量在蓝图编辑器中显示在“Advanced”类别下。常用于将变量分组显示。
- AssetRegistrySearchable:表示该变量可以在资产浏览器中进行搜索。常用于需要在资产浏览器中搜索的变量。
- BlueprintReadOnlyWithVariants:表示该变量只能在蓝图中进行读取操作,不能在蓝图中进行写入操作,并且可以在派生类中进行重载。常用于定义只读变量,并且允许在派生类中进行重载。
- BlueprintSetter:表示该变量的Setter函数名称。常用于自定义Setter函数的名称。
- BlueprintGetter:表示该变量的Getter函数名称。常用于自定义Getter函数的名称。
- ClampMin:表示该变量的最小值。常用于限制变量的最小值。
- ClampMax:表示该变量的最大值。常用于限制变量的最大值。
- UIMin:表示该变量在蓝图编辑器中的最小值。常用于限制变量在蓝图编辑器中的最小值。
- UIMax:表示该变量在蓝图编辑器中的最大值。常用于限制变量在蓝图编辑器中的最大值。
- SliderExponent:表示该变量在蓝图编辑器中的滑动条指数。常用于自定义滑动条指数。
- SliderMin:表示该变量在蓝图编辑器中的滑动条最小值。常用于限制变量在蓝图编辑器中的滑动条最小值。
- SliderMax:表示该变量在蓝图编辑器中的滑动条最大值。常用于限制变量在蓝图编辑器中的滑动条最大值。
- ExposeOnSpawn:表示该变量在实例化蓝图时可以在Details面板中进行编辑。常用于在实例化蓝图时设置变量的值。
- HideInDetailsView:表示该变量在蓝图编辑器中不显示在Details面板中。常用于隐藏变量。
- HideInListView:表示该变量在蓝图编辑器中不显示在变量列表中。常用于隐藏变量。
- VisibleAnywhere:表示该变量在蓝图编辑器中显示在变量列表中,并且可以在蓝图中进行读取操作。常用于定义可读变量。
- VisibleDefaultsOnly:表示该变量在蓝图编辑器中显示在变量列表中,并且只能在蓝图类的默认值中进行读取操作。常用于定义只读变量。
- VisibleInstanceOnly:表示该变量在蓝图编辑器中不显示在变量列表中,并且只能在实例化蓝图时进行读取操作。常用于定义只读变量。
- AllowPrivateAccess:表示该变量可以在蓝图类的成员函数中进行读写操作。常用于定义只能在类内部访问的变量。
- AssetReference:表示该变量是一个资产引用。常用于引用资产。
- AssetPtr:表示该变量是一个资产指针。常用于引用资产。
- AssetSubclassOf:表示该变量是一个资产子类。常用于引用资产子类。
- BlueprintAssignable:表示该变量是一个蓝图事件。常用于定义蓝图事件。
- BlueprintCallable:表示该变量是一个蓝图函数。常用于定义蓝图函数。
- BlueprintCosmetic:表示该变量是一个蓝图美化变量。常用于定义蓝图美化变量。
- BlueprintInternalUseOnly:表示该变量只能在蓝图类的成员函数中进行读写操作。常用于定义只能在类内部访问的变量。
- BlueprintProtected:表示该变量只能在蓝图类及其派生类的成员函数中进行读写操作。常用于定义只能在类及其派生类内部访问的变量。
- BlueprintPure:表示该变量是一个纯蓝图函数,不会修改任何状态。常用于定义纯蓝图函数。
- BlueprintSetterTimer:表示该变量的Setter函数名称,并且在设置变量时会启动一个定时器。常用于自定义Setter函数,并且在设置变量时启动定时器。
- BlueprintTransient:表示该变量在蓝图编辑器中不显示在变量列表中,并且不会被保存。常用于定义临时变量。
- BlueprintReadOnlyTimer:表示该变量只能在蓝图中进行读取操作,不能在蓝图中进行写入操作,并且在读取变量时会启动一个定时器。常用于定义只读变量,并且在读取变量时启动定时器。
- CategoryShowOnly:表示该变量在蓝图编辑器中显示在指定的类别下,并且只显示该类别下的变量。常用于将变量分组显示,并且只显示指定类别下的变量。
- Deprecated:表示该变量已经过时,不建议使用。常用于标记已经过时的变量。
- DisableEditOnInstance:表示该变量在实例化蓝图时不能在Details面板中进行编辑。常用于定义只读变量。
- DisableEditOnTemplate:表示该变量在蓝图类的默认值中不能进行编辑。常用于定义只读变量。
- EditFixedSize:表示该变量在蓝图编辑器中显示为固定大小的数组。常用于定义固定大小的数组。
- EditInline:表示该变量在蓝图编辑器中显示为内联编辑器。常用于定义内联编辑器。
- EditInstanceOnly:表示该变量在实例化蓝图时可以在Details面板中进行编辑。常用于在实例化蓝图时设置变量的值。
- EditInlineNew:表示该变量在蓝图编辑器中显示为内联编辑器,并且可以在蓝图中创建新的对象。常用于定义内联编辑器,并且可以在蓝图中创建新的对象。
- EditInlineUse:表示该变量在蓝图编辑器中显示为内联编辑器,并且可以在蓝图中使用现有的对象。常用于定义内联编辑器,并且可以在蓝图中使用现有的对象。
- EditReference:表示该变量是一个引用变量。常用于定义引用变量。
- EditConditionOnly:表示该变量的编辑条件,只有在满足特定条件时才会在蓝图编辑器中显示,并且不能在蓝图中进行读写操作。常用于根据其他变量的值来控制变量的可见性,并且不能在蓝图中进行读写操作。
- Interp:表示该变量是一个插值变量。常用于定义插值变量。
- InterpCurveEdSetup:表示该变量是一个插值曲线。常用于定义插值曲线。
- InterpCurvePoint:表示该变量是一个插值曲线的点。常用于定义插值曲线的点。
- InterpProperty:表示该变量是一个插值属性。常用于定义插值属性。
- InterpShowOnlyInnerProperties:表示该变量在蓝图编辑器中只显示内部属性。常用于隐藏插值属性的内部属性。
- InterpStep:表示该变量是一个插值步骤。常用于定义插值步骤。
- InterpTimePoint:表示该变量是一个插值时间点。常用于定义插值时间点。
- NoClear:表示该变量在清除蓝图时不会被清除。常用于定义不会被清除的变量。
- NonPIEDuplicateTransient:表示该变量在复制蓝图时不会被复制。常用于定义不会被复制的变量。
- NotReplicated:表示该变量不会被复制到网络上。常用于定义不需要在网络上同步的变量。
- OnlyPlaceable:表示该变量只能在蓝图类的默认值中进行编辑,而不能在实例化蓝图时进行编辑。常用于定义只能在类级别上编辑的变量。
- PerObjectLocalizedDesc:表示该变量在蓝图编辑器中显示的本地化描述。常用于提供变量的本地化描述。
- PerObjectLocalizedDisplayName:表示该变量在蓝图编辑器中显示的本地化名称。常用于提供变量的本地化名称。
- PersistentGuid:表示该变量的持久化GUID。常用于定义持久化GUID。
- ReadOnly:表示该变量只能在蓝图中进行读取操作,不能在蓝图中进行写入操作。常用于定义只读变量。
- Replicated:表示该变量会被复制到网络上。常用于定义需要在网络上同步的变量。
- ReplicatedUsing:表示该变量在复制到网络上时会调
- 用指定的函数。常用于自定义复制函数。
- SoftObject:表示该变量是一个软引用变量。常用于定义软引用变量。
- SoftClass:表示该变量是一个软引用类。常用于定义软引用类。
- Transient:表示该变量在蓝图编辑器中不显示在变量列表中,并且不会被保存。常用于定义临时变量。
- VisibleAnywhereBlueprintReadOnly:表示该变量在蓝图编辑器中显示在变量列表中,并且可以在蓝图中进行读取操作,但不能在蓝图中进行写入操作。常用于定义只读变量。
- WorldContext:表示该变量是一个世界上下文变量。常用于定义世界上下文变量。
2. 扩展
** 以上是UE4中用于定义蓝图变量的元数据的所有关键字,但是还有一些其他的元数据关键字,如下: **
这些关键字与前面提到的关键字类似,但是不会被导出到C++代码中,常用于只在蓝图中使用的变量和函数。
- BlueprintReadOnlyWithoutExport:表示该变量只能在蓝图中进行读取操作,不能在蓝图中进行写入操作,并且不会被导出到C++代码中。常用于定义只读变量,并且不需要导出到C++代码中。
- BlueprintSetterWithoutExport:表示该变量的Setter函数名称,并且不会被导出到C++代码中。常用于自定义Setter函数的名称,并且不需要导出到C++代码中。
- BlueprintGetterWithoutExport:表示该变量的Getter函数名称,并且不会被导出到C++代码中。常用于自定义Getter函数的名称,并且不需要导出到C++代码中。
- BlueprintInternalUseOnlyWithoutExport:表示该变量只能在蓝图类的成员函数中进行读写操作,并且不会被导出到C++代码中。常用于定义只能在类内部访问的变量,并且不需要导出到C++代码中。