Hi everyone!
I’m a bit of a newbie at C++ and UE4, so I’ve been working on my knight/paladin character recently, and I’ve come across an error, hope you guys can help me out.
So, on my character, I have a scenecomponent that I have declared and initialized in my C++ code which holds 2 static meshes, a sword and a sheath(sword cover), I want that scenecomponent to attach to a socket of my choice at compile time and also at runtime(when a key is pressed(in the future)), I have also created a blueprint from that character code of mine. If I click on the scenecomponent in the blueprint editor there is no text box where I can type in the socket name unlike when I create a scenecomponent from inside the Blueprint editor, it will have a text box to type in the Socket name. So I tried attaching the scenecomponent to the socket from inside my constructor after initializing it. But as it seems now, it didn’t really work, I can say that because when I run the game, the sword and the sheathe stay still in a place while my character plays the run animation instead of moving with the character, I mean it does move with the character, but it does not stay attached to its waist like its blueprint initialized counter part(another scenecomponet with a static mesh of a sword in it which I added directly in the blueprint editor).
Here is my constructor code, hope you guys can help me:-
//Constructor
APlayerCharacter::APlayerCharacter()
{
//Setup the components
//Root = CreateDefaultSubobject<USceneComponent>(TEXT("Root"));
//RootComponent = Root;
//Seathe Socket
Seathe_Socket = CreateDefaultSubobject<USceneComponent>(TEXT("Seathe_Socket"));
Seathe_Socket->SetupAttachment(GetMesh(), FName (TEXT("SwordInSeatheSocket")));
//SwordInHand Socket
SwordInHand_Socket = CreateDefaultSubobject<USceneComponent>(TEXT("SwordInHand_Socket"));
SwordInHand_Socket->SetupAttachment(GetMesh());
//LongSword
LongSword = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("LongSword"));
LongSword->SetupAttachment(Seathe_Socket);
//LongSwordSeathe
LongSwordSeathe = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("LongSwordSeathe"));
LongSwordSeathe->SetupAttachment(Seathe_Socket);
}