📘Unreal Engine/📝Unreal Engine
[Unreal Engine] 에셋 경로 참조하기
주으기
2024. 3. 20. 09:44
728x90
반응형
에셋을 참조할 때 이거 하나 때문에 헤더를 가져와야 하나? 할 때가 있다.
에셋 경로를 참조하는 방법은 헤더를 참조하지 않고 에셋의 경로를 가져와서 참조하는 방법이다.
ConstructorHelpers를 사용하면 템플릿에 경로를 참조할 수 있다.
ConstructorHelpers::FClassFinder<>를 사용하여 클래스의 타입을 넣고 위에서 복사한 경로를 집어넣으면 된다.
클래스가 아닌, 오브젝트 경로를 참조할 것이라면, FObjectFinder<> 사용.
클래스 정보를 가져올 때는 여기서 ''안에있는 경로만 남기고 삭제하면 된다.
/Script/Engine.Blueprint'/Game/ThirdPerson/Blueprints/BP_ThirdPersonCharacter.BP_ThirdPersonCharacter'
/Game/ThirdPerson/Blueprints/BP_ThirdPersonCharacter.BP_ThirdPersonCharacter 이렇게
복사할 때 C++ Class를 대상으로 복사한게 아니면 뒤에 _C를 붙인다.
/Game/ThirdPerson/Blueprints/BP_ThirdPersonCharacter.BP_ThirdPersonCharacter_C
#include "Game/ABGameMode.h"
AABGameMode::AABGameMode()
{
// DefaultPawnClass 설정
static ConstructorHelpers::FClassFinder<APawn> ThirdPersonClassRef(TEXT("/Game/ThirdPerson/Blueprints/BP_ThirdPersonCharacter.BP_ThirdPersonCharacter_C"));
if (ThirdPersonClassRef.Class)
{
DefaultPawnClass = ThirdPersonClassRef.Class;
}
// PlayerControllerClass 설정
static ConstructorHelpers::FClassFinder<APlayerController> PlayerControllerClassRef(TEXT("/Script/ArenaBattle.ABPlayerController"));
if (PlayerControllerClassRef.Class)
{
PlayerControllerClass = PlayerControllerClassRef.Class;
}
}
장점 : 에셋 경로를 참조하여 사용해서 가급적 다른 폴더의 헤더를 직접 참조하지 않도록 구성할 수 있다.
단점 : 에셋 경로를 하드코딩 하는 것 이기 때문에 경로나 이름이 변경되면 일일히 다 바꿔줘야 한다. 오류가 뿜뿜 남
728x90
반응형