I want to create a virtual function that I will call any time and anywhere to spawn an actor from ActorClass , the idea i got from blueprints where we call a node and in C++ I want to add the same functionality have a function that i will call and it will take some parameters to spawn actor from class.
Note this this just an idea and I believe this is possible to achieve
Example:
may contain mistakes, but you will get the idea what I am talking about.
also I used blueprint library as I donโt know other way.
MyGameMode.h
virtual void SpawnActorFromClass(FTransform SpawnTransform, FActorSpawnParameters SpawnInfo, TSubclassOf<AActor> ActorToSpawn );
MyGameMode.cpp
void MyGameMode::SpawnActorFromClass(FTransform SpawnTransform, FActorSpawnParameters SpawnInfo, TSubclassOf<AActor> ActorToSpawn)
{
FTransform SpawnTransform_ = FTransform;
FTransform MakeTransform_Ret{};
AItemGroup* FinishSpawnClass_{};
FVector Location = SpawnTransform_.GetLocation();
FRotator Rotation = SpawnTransform_.GetRotation();
FVector Scale = SpawnTransform_.GetScale3D();
FActorSpawnParameters SpawnInfo_ = SpawnInfo;
MakeTransform_Ret = UKismetMathLibrary::MakeTransform(FVector(Location), FRotator(Rotation), FVector(Scale));
SpawnInfo_ = UGameplayStatics::BeginDeferredActorSpawnFromClass(this, AItemGroup::StaticClass(), MakeTransform_Ret, ESpawnActorCollisionHandlingMethod::Undefined, ((AActor*)nullptr));
MakeTransform_Ret = UKismetMathLibrary::MakeTransform(FVector(Location), FRotator(Rotation), FVector(Scale));
FinishSpawnClass = CastChecked<AItemGroup>(UGameplayStatics::FinishSpawningActor(SpawnInfo_, MakeTransform_Ret), ECastCheckedType::NullAllowed);
ActorToSpawn = FinishSpawnClass;
}