Unreal中获取目标类的引用SubclassOf or UClass

UClass*可以代指任何UObject类,所以在蓝图很难进行选择,而`TSubclassOf`可以限定只引用某个类型及其子类型的类型。

UClass

UClass*可以代指任何UObject类,所以在蓝图很难进行选择。

UPROPERTY(EditAnywhere,BlueprintReadWrite,Category="Class")
UClass* AimClass;

SubclassOf

TSubclassOf可以限定只引用某个类型及其子类型的类型。

UPROPERTY(EditAnywhere,BlueprintReadWrite,Category="Class")
TSubclassOf<ACharacter> AimClass2;

所以在运行中可以根据该类的引用来动态创建Actor对象。

  • 在生成Actor之前需要,获取当前world
  • 然后使用SpawnActor生成Actor
UWorld* World = GetWorld();
if (World)
{
World->SpawnActor<ACharacter>(AimClass2);
ABullet* temp = World->SpawnActor<ACharacter>(ACharacter);
}