1.UCLASS中的属性
UCLASS在UE Editor中的表现,比如Blueprintable允许该UCLASS可以在UE editor创建蓝图。
2.UPROPERTY中的属性
UCLASS中的UPEROPERTY属性的表现,如BlueprintReadWrite,允许该属性在UE editor中读写,注意ReadWirte不能出现在private变量中。
3.指定UCLASS作为UPROPERTY
在Blueprint中以下拉菜单的形式选择指定的UCLASS
1.TSubclassOf<UCLASS> Name;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Unit)
TSubclassOf<UObjct> UClassOfPlayer;
2.FStringClassReference
UPROPERTY(EditAnywhere, meta = (MetaClass = "GameMode"), Category = Unit)
FStringClassReference UCLassGameMode;
4.示例
(一开始我在逻辑上犯了个错误,认为在蓝图中下拉菜单选中的是蓝图对象,直接取出来就能调用Get Name 或者 Get Age。后来看到FStringClassReference中的String才恍然大悟,得到的只是制指定UCLASS 的 名字字符串)
工作流程:使用MyPlayer蓝图选中的UserProfile蓝图,打印其Name 和 Age
MyPlayer.h
UserProfile.h
BP_Myplayer
BP_UserProfile
关卡蓝图中执行
运行结果