02.UE4学习总结.Blueprints to C++.UPROPERTY


语法

  UPROPERTY([specifier,specifier,...],[meta=(key=value,key=value,...)])

  Type VariableName;

  Example:

  UPROPERTY(EditAnywhere,BlueprintReadOnly,Category="Config",meta=(DisplayName="TestName"))

  Int32 = Test;

  属性标识符可以控制变量在引擎中的显示模式,编辑模式,分组,范围等等

蓝图数据类型对应C++的数据类型

  Boolean            ->   bool (or uint8:1)

  Byte                ->   uint8 Interger -> int32

  Interger64         ->   int64

  Float            ->   float

  Double        ->  double

  Name          ->   FName

  String          ->   FString

  Text          ->   FText

  Vector           ->   FVector

  Rotator         ->   FRotator

  Transform       ->   FTransform

 Intergers

  uint8  ->  int8

  uint16  ->  int16

  uint32 ->  int32

  uint64    ->  int64

  uint 主要有用于与虚幻相关的开发,写一些框架,与蓝图交互等等;int跨平台性能更好,更安全。

Floating point

  float,double

蓝图不支持的变量类型

  int8  int16  uint16  uint32  uint64

 但是这些类型可以在类中使用

 一些重要的UPROPERTY类型说明符(这是一些常用的,比较全的可以去官方文档查询)

  • BlueprintReadOnly            变量在蓝图中只能get()  
  • BlueprintReadWrite           变量在蓝图中可以 get() 也可以set()
  • VisibleAnywhere                变量在蓝图内外都可见,但是不能编辑
  • VisibleDefaultsOnly            变量只在蓝图默认设置中可见,但是不能编辑
  • VisibleInstanceOnly            变量只在world中的实例可见,但是不能编辑
  • EditAnywhere                      变量在蓝图内外都能编辑
  • EditDefaultsOnly                 变量在蓝图默认设置中可以编辑
  • EditInstanceOnly                 变量只在world实例中可编辑
  • Category="TopCategory|SubCategory"          变量分组标签

 Category的作用  Category="ReadWrite|ReadOnly"

 

 一些常用的 meta 标签

  • DisplayName="Property Name"         变量显示的名字
  • Tooltip="This is a tooltip"                    变量提示语言
  • ClampMin="N"                                    变量最小值
  • ClampMax="N"                                   变量最大值
  • AllowPrivateAccess="true|false"         变量允许是否允许私有