UPROPERTY
UPROPERTY(EditAnywhere)
FString fStr
UPROPERTY 到底有啥用
- 首先 会把该变量 加入到UE的内存计数管理中 。(很重要)
- 根据后面的参数 表示该变量的状态
2.1. 是否可以被 蓝图 使用 只读 可写 可见 等等
UPROPERTY 不能用来标识 复杂的嵌套声明
//UPROPERTY(EditAnywhere, BlueprintReadWrite) 加宏 会报错
TMap<int32,TArray<int32>> MMap;
但是可以拆分之后声明
UCLASS(BlueprintType, Blueprintable)
class UArrayList : public UObject
{
GENERATED_BODY()
public:
UPROPERTY(EditAnywhere, BlueprintReadWrite)
TArray<int32> List;
};
UCLASS(BlueprintType, Blueprintable)
class UMapTest : public UObject
{
GENERATED_BODY()
public:
UPROPERTY(EditAnywhere, BlueprintReadWrite)
TMap<int32, UArrayList* > MMap;
}
类似这种问题 未加宏 Map会 内存释放 , value为 null
开发过程中会造成莫名其妙的问题 ,Crash都是幸运的