Unreal 생성자에서 리소스 불러오기 C++
- 프로그래밍/언리얼
- 2024. 8. 18.
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;
}