C++에서 애셋 레퍼런싱(Referencing Assets)
이건 지난 글에서 이어가는 것일 수도 있다.
왜냐면 지난 글에서는 Actor계열 BluePrint를 C++에서 SpawnActor할 때의 문제가 생겼을 때의 경우지만
이 글은 C++에서 UObject계열의 BP를 참조하는 방법에 대한 글이기 때문이다.
마찬가지로 4.15로 리팩토링 한 뒤부터 StaticLoadObject가 잘 안먹혔다.
그래서 수정 중 Actor계열은 처리 했지만 UObject계열 중 UMaterialInterface을 Load하는 것에는 실패 했다.
UObject계열은 _C를 붙인다고 해서 되지 않는다.
그래서 찾은 방법이 미리 만들어 두는 방법이다.
CDO가 생성될 때 설정하는 방법은 아래와 같다.
.h파일
UPROPERTY()
UMaterialInterface* mOpaque = nullptr;
.cpp파일
클래스이름::클래스이름() //생성자
{
static ConstructorHelpers::FObjectFinder<UMaterialInterface> mInterfaceOpaque(TEXT("Material'/Game/Member/Member_Opaque.Member_Opaque'"));
mOpaque = mInterfaceOpaque.Object;
꼭 생성자에서 해야 한다.
위와 같이 해놓으면 빌드 후 exe실행으로 테스트 해도 변수에 제대로 값이 들어가 있다.
참고 페이지 : https://docs.unrealengine.com/latest/KOR/Programming/Assets/ReferencingAssets/index.html
한글로는 (생성 시간 레퍼런싱), 영어로는 (Construction Time Reference) 부분을 참고하자.
'공부 > Unreal4' 카테고리의 다른 글
Unreal4 HTML5 테스트 중 - 4.16 Deprecated Functions(by Class.h) (0) | 2017.06.19 |
---|---|
Unreal4 HTML5(WebGL2) 프로토타입 - 모바일 HDR 설정 (0) | 2017.06.18 |
C++에서 BP(블루프린트) SpawnActor 하기 (4.15 이후) (0) | 2017.05.30 |
언리얼4 - float to FString , FString to float 주의사항 (0) | 2017.05.18 |
GetWorldTimerManager().SetTimer() (0) | 2017.05.13 |
C++에서 BP(블루프린트) SpawnActor 하기 (4.15 이후)
4.12.5버전을 사용할 때에는
아래처럼 블루프린트 경로를 설정하여 사용하였었는데
FName Path = TEXT("Blueprint'/Game/Actor/My_BP.My_BP'"); //My_BP.My_BP_C였던거 같은데...4.15에서는 _C붙이면 NULL이 됨.
UBlueprint* GeneratedBP = Cast<UBlueprint>(StaticLoadObject(UBlueprint::StaticClass(), NULL, *Path.ToString()));
GetWorld()->SpawnActor<AMyActor>(GeneratedBP->GeneratedClass, location, FRotator::ZeroRotator);
4.15버전에서는 에디터에서만 되고
실행 모드나 빌드 후 exe로 게임을 실행하면 Error가 발생한다.
그래서 여러 방도를 찾다가 아래와 같이 UClass를 찾으면 된다는 걸 알아냈다.
FName Path = TEXT("Class'/Game/Actor/My_BP.My_BP_C'"); //_C 꼭 붙여야 한다.
UClass* GeneratedBP = Cast<UClass>(StaticLoadObject(UClass::StaticClass(), NULL, *Path.ToString()));
GetWorld()->SpawnActor<AMyActor>(GeneratedBP, location, FRotator::ZeroRotator);
전 버전에서도 _C붙이는 것과 안붙이는 차이가 있었긴 한데
4.15 이상으로 오면서 BP Class와 BP 레퍼런스를 받아오는 게 명확히 나뉜거 같다.
'공부 > Unreal4' 카테고리의 다른 글
Unreal4 HTML5(WebGL2) 프로토타입 - 모바일 HDR 설정 (0) | 2017.06.18 |
---|---|
C++에서 애셋 레퍼런싱(Referencing Assets) (0) | 2017.05.31 |
언리얼4 - float to FString , FString to float 주의사항 (0) | 2017.05.18 |
GetWorldTimerManager().SetTimer() (0) | 2017.05.13 |
UE4.exe 지정된 파일을 찾을 수 없습니다. (0) | 2017.05.11 |
인터넷이 이렇게 빠를 수 없습니다.
어제까지 3박 5일 동안 푸켓 내에서는
카톡으로 사진 하나 올리고 받는 것도 쩔쩔맸는데
우리나라 들어오고 나서 데이터 켜자마자
몇 십장의 사진 데이터가 순식간에 끝납니다.
평소엔 멋모르고 막 썼는데
이제는 우리나라 발전에 고마움을 느낍니다.
'개인사 > 개인' 카테고리의 다른 글
마이어스-브릭스 성격유형검사(2019년도) [INTJ-A] (0) | 2019.06.03 |
---|---|
마이어스-브릭스 유형 지표의 16가지 성격유형검사 [INTJ-T] (1) | 2017.07.07 |
SSD 너무 늦게옴 (0) | 2017.05.04 |
새 신을 신고 뛰어보자 (0) | 2017.05.03 |
노트북 설치 프로그램 목록 (0) | 2017.04.28 |