Hello,
I’ve been trying to implement an equipment system. I have SkeletalMeshComponents for different equipment parts in my HumanCharacter class.
...
USkeletalMeshComponent* LegsEquipmentComponent;
USkeletalMeshComponent* FeetEquipmentComponent;
...
I ınitialize these components in HumanCharacter constructor as below:
CreateSubObjectMesh(FeetEquipmentComponent, FName("FeetEquipmentComponent"));
CreateSubObjectMesh method:
void AHumanCharacter::CreateSubObjectMesh(USkeletalMeshComponent* Comp, FName Name)
{
Comp = CreateDefaultSubobject<USkeletalMeshComponent>(Name);
Comp->SetupAttachment(GetMesh());
Comp->RelativeLocation = FVector::ZeroVector;
Comp->SetMasterPoseComponent(GetMesh());
}
Comp should directly effect FeetEquipmentComponent as far as I know. But it doesn’t.
I have EquipmentManager class which holds a reference to HumanCharacter class as “Owner”. Through this reference I assign mesh of these SkeletalMeshComponents:
void UEquipmentManager::EquipItem(UEquipment* Equipment)
{
Owner->FeetEquipmentComponent->SetSkeletalMesh(Equipment->SkeletalMesh);
}
Here, Owner->FeetEquipmentComponent is acting like it is not assigned and causing editor to crash. If I remove CreateSubObjectMesh method and directly work on FeetEquipmentComponent everything works without a problem. But I do not want to replicate this for each component.
What am I missing here?