플레이어 클래스에서 플레이어가 생성되면 기본적으로 권총을 스폰해서 손에 부착되도록 설정하려고함
테스트용으로 TSubclassOf<>로 에디터에서 권총 블루프린트를 선택했을 때 스폰되도록 하니까 잘됨
근데 게임 도중에 무기를 스왑해도 총이 스폰되어야하니까 블루프린트 클래스 객체를 참조해야할 필요성이 생김
찾아보니 LoadClass함수를 사용하면 될 것같았음
UClass* Pistol = LoadClass<APistol>(nullptr, TEXT("/Game/Items/Blueprints/BP_Pistol.BP_Pistol_C"));
if (GetWorld())
{
EquippedWeapon = GetWorld()->SpawnActor<AGun>(Pistol);
}
이렇게 구현하니 원하는 대로 정상적으로 실행됨
static ConstructorHelpers::FClassFinder<AGun> FindPistol(TEXT("/Game/Items/Blueprints/BP_Pistol.BP_Pistol_C"));
if (FindPistol.Succeeded())
{
EquipInventory.Emplace(FindPistol.Class->GetDefaultObject<APistol>());
}
이건 생성자에서만 사용할 수 있는 버전
** 애니메이션 억까당해서.. 시간날리고.. 애니메이션 후순위로 밀고 인벤토리부터 구현하기로함
-> 내 컴퓨터에서 애니메이션 리타게팅하면 깨지는데 다른분 컴퓨터에서 리타게팅하면 제대로나옴..;; 왜..?