UE4

[UE4] 코드로 에셋 적용시키기

Honey Badger 2022. 9. 30. 19:12

에셋 지정

  게임이 시작하기 전 생성자함수에서 에셋을 지정하려면 ConstructorHelpers::FObjectFinder를 사용하면 된다. 이때 에셋 경로는 변하지 않을 고유값이므로 static을 붙여주고 if + Succeeded()로 에셋이 불러와졌을때만 메쉬에 적용해주는 부분이 중요하다. 

static ConstructorHelpers::FObjectFinder<USkeletalMesh>SM_KWANG(TEXT("SkeletalMesh'/Game/Assets/ParagonKwang/Characters/Heroes/Kwang/Meshes/KwangRosewood.KwangRosewood'"));
	if (SM_KWANG.Succeeded())
	{
		Mesh->SetSkeletalMesh(SM_KWANG.Object);
	}

 

 

  이번에는 생성자에서 에셋을 로드하지 않고, 게임 실행 중 BeginPlay()에서 에셋을 로딩해보자. 해당 명령어는 LoadObject<타입>이다.

void AABPawn::BeginPlay()
{
	Super::BeginPlay();
    
	Mesh->SetAnimationMode(EAnimationMode::AnimationSingleNode);
	UAnimationAsset* AnimAsset = LoadObject<UAnimationAsset>(nullptr, TEXT("AnimSequence'/Game/Book/Animations/WarriorRun.WarriorRun'"));
	if (AnimAsset != nullptr)
	{
		Mesh->PlayAnimation(AnimAsset, true);
	}
	
}