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);
}