I find out I can use a function in C++ which spawn an actor and let you change your desired parameters and run ConstructionScript after all. So I created two C++ class one named TerrainBuilder and one as my module parent, named ModuleParameters. I created ModuleWidth variable in C++ parent and I created a blueprintcallable function in TerrainBuilder to SpawnDeferred. After spawning I changed ModuleWidth and finished spawn. But Still the same result.
This making me crazy, can anyone help please?
AModuleParameters* ATerrainBuilder::SpawnDeferred(TSubclassOf<AModuleParameters> ToSpawn, FTransform SpawnTransform)
{
auto MyDeferredActor = Cast<AModuleParameters>(UGameplayStatics::BeginDeferredActorSpawnFromClass(this, ToSpawn, SpawnTransform));
if (MyDeferredActor != nullptr)
{
MyDeferredActor->SetModuleWidth(2);
UGameplayStatics::FinishSpawningActor(MyDeferredActor, SpawnTransform);
}
return MyDeferredActor;
}