Trying to change controller pawn with Possess method but editor crashes when method executed.
FHitResult TraceResult(ForceInit);
GetHitResultUnderCursor(ECollisionChannel::ECC_WorldDynamic, false, TraceResult);
FString TraceString;
if (TraceResult.GetActor() != nullptr)
{
TraceString += FString::Printf(TEXT("Trace Actor %s."), *TraceResult.GetActor()->GetName());
FString name = TraceResult.GetActor()->GetName();
if (name.Contains("_WEAPON_PISTOL")) {
AWeaponActor * weaponActor = Cast<AWeaponActor>(TraceResult.GetActor());
AGameCharacter * gameCharacter = Cast<AGameCharacter>(GetPawn());
weaponActor->AttachRootComponentTo(gameCharacter->GetMesh(), FName(TEXT("SocketPistol")), EAttachLocation::SnapToTarget); // Attach the root component of our Weapon actor to the ArmMesh at the location of the socket
}
if (name.Contains("_CHARACTER_PLAYER")) {
ClientMessage("Character selected");
ClientMessage(name);
//UnPossess();
//Possess(Cast<AGameCharacter>(TraceResult.GetActor()));
}
}
if (TraceResult.GetComponent() != nullptr)
{
TraceString += FString::Printf(TEXT("Trace Comp %s."), *TraceResult.GetComponent()->GetName());
}