I am recreating WoW like gameplay and I just finished creating my nameplates which is just text hovering over my gameobjects. Now I also created a Nameplate manager that manages all my nameplates.
I extended it from UActorComponent so that I could create it in my character constructor.
Nameplates = PCIP.CreateDefaultSubobject<UTargetInfoManager>(this, TEXT("Nameplates"));
Nameplates->owner = this;
Nameplates->Init();
But as you can see I have to initialize my manager and it is quite error prone. What if I forget to initialize it?
So I tried to create a custom constructor like this
TSubobjectPtr<UTargetInfoManager> UTargetInfoManager::Create(const class FPostConstructInitializeProperties& PCIP,AMyProject3Character *owner)
{
TSubobjectPtr<UTargetInfoManager> nameplates = PCIP.CreateDefaultSubobject<UTargetInfoManager>(owner, TEXT("Nameplates"));
nameplates->owner = owner;
nameplates->Init();
return nameplates;
}
The problem is that I can not assign a TSubobjectPtr anymore, I think I can only assign a TSubobjectPtrConstructor but I don’t think that I have access to it.
How did you create your custom constructor?