Unreal 생성자에서 리소스 불러오기 C++

250x250

Unreal 생성자에서 리소스 불러오기 C++

이 글은 Unreal Engine에서 ConstructorHelpers를 사용해 생성자에서 특정 리소스를 불러오는 방법에 대한 글입니다.

ConstructorHelpers에 대한 간단한 설명.

 ConstructorHelpers 클래스는 C++에서 객체를 생성할 때 리소스를 찾고 로드할 때 사용됩니다.

객체를 생성할 때 사용되므로 생성자에서만 사용가능합니다.

런타임에서 리소스를 로딩하기 위해서는 다른 방법을 사용해야 하고 이 글에서는 다루지 않습니다.

https://dev.epicgames.com/documentation/ko-kr/unreal-engine/gameplay-classes-in-unreal-engine

FClassFinder

 FClassFinder는 'ConstructorHelpers'의 헬퍼 클래스로 클래스를 찾기 위해 사용합니다.

아래는 사용 예시 코드입니다.

 

static ConstructorHelpers::FClassFinder<ACustomCharacter> CustomCharacterClassFinder(TEXT("Blueprint'/Game/PathToYourBlueprint/BP_CustomCharacter.BP_CustomCharacter_C'"));
if (CustomCharacterClassFinder.Succeeded()) {
    TSubclassOf<ACustomCharacter> CustomCharacterClass = CustomCharacterClassFinder.Class;
}

FObjectFinder

 'ConstructorHelpers'의 헬퍼 클래스로 오브젝트(머티리얼, 텍스처, 스프라이트 등)를 찾기 위해 사용합니다.

아래는 사용 예시 코드입니다.

1. Material Instance

static ConstructorHelpers::FObjectFinder<UMaterialInstance> MaterialInstanceFinder(TEXT("MaterialInstanceConstant'/Game/PathToYourMaterialInstance/YourMaterialInstance.YourMaterialInstance'"));
if (MaterialInstanceFinder.Succeeded()) {
    UMaterialInstance* MyMaterialInstance = MaterialInstanceFinder.Object;
}

2. Static Mesh

static ConstructorHelpers::FObjectFinder<UStaticMesh> MeshAssetFinder(TEXT("StaticMesh'/Game/PathToYourMesh/YourMesh.YourMesh'"));
if (MeshAssetFinder.Succeeded()) {
    UStaticMesh* MyMesh = MeshAssetFinder.Object;
}

3. Texture

static ConstructorHelpers::FObjectFinder<UTexture2D> TextureAssetFinder(TEXT("Texture2D'/Game/PathToYourTexture/YourTexture.YourTexture'"));
if (TextureAssetFinder.Succeeded()) {
    UTexture2D* MyTexture = TextureAssetFinder.Object;
}

4. Sound

static ConstructorHelpers::FObjectFinder<USoundBase> SoundAssetFinder(TEXT("SoundCue'/Game/PathToYourSound/YourSound.YourSound'"));
if (SoundAssetFinder.Succeeded()) {
    USoundBase* MySound = SoundAssetFinder.Object;
}

 

Designed by JB FACTORY