在写插件的过程中,需要在蓝图中指定某一类型的类,在蓝图层面写一个基类蓝图的变量就可以实现这样的操作。但是在c++层面如何实现呢?
TSubClassOf
UPROPERTY(EditDefaultsOnly,Category="BulletType")
UClass* BulletTypeByUClass; // 所用的Class类
UPROPERTY(EditDefaultsOnly,Category="BulletType")
TSubclassOf<ABaseBullet> BulletTypeByTSubClass; // 过滤其他类,只保留BaseBullet类型的
实现的效果截图如下:
使用TSubClassOf的好处
能够获得c++层级上的类型安全。指定泛型UClass 时,会执行一个类型检查,以确保它可以正确指定类型。