[UE4] C++ 생성자에서 블루프린트 자산을 로드하는 방법
먼저
실수나 더 좋은 방법이 있었을 경우에는 살짝 Twitter( @ 로사무 )나 코멘트, 수정 리퀘스트등으로 알려 받을 수 있으면 매우 고맙습니다.
작업환경
기사 내에서 사용하는 작업 환경은 다음과 같습니다.
기사 내에서 사용하는 작업 환경은 다음과 같습니다.
BP의 경로를 얻으십시오.
로드할 BP를 마우스 오른쪽 버튼으로 클릭하여 메뉴를 표시하고
Copy Reference
를 누릅니다.생성자에서 BP 로드
ACPP_StartGameMode::ACPP_StartGameMode()
:Super()
{
// ロードを行いたいBPのパスを指定. これは
// C++からBPのクラスを参照する際には末尾に_cを付け足す.
FString CharacterPath = "/Game/ThirdPersonBP/Blueprints/ThirdPersonCharacter.ThirdPersonCharacter_c";
// ConstructorHelpersはコンストラクタ内でオブジェクトやオブジェクトのクラスを検索する機能を持つ.
// アセットが存在しないかエラーでロードできない場合、プロパティにはnullptrが入る。
static ConstructorHelpers::FObjectFinder<UClass> CharacterBP(*CharacterPath);
TSubclassOf<AActor> ThirdPersonCharacter = CharacterBP.Object;
if (ThirdPersonCharacter != nullptr)
{
DefaultPawnClass = ThirdPersonCharacter;
}
}
여기서 패스명이 잘못되어 있는 경우(「'」가 문두, 문말에 대해서 있거나, 「_c」가 들어가 있지 않다) 경우에는,
ConstructorHelpersInternal
의 FindOrLoadObject
로 브레이크 되어 버릴 가능성이 있습니다. 조심하자.이 경우의 로드 방법이라고 하면, constructor 으로 위와 같은 로드를 실시하고 있는 에셋을 생성했을 때에, 기술하고 있는 에셋도 단번에 로드되기 때문에, 메모리 사용량이 부풀어 올 수 있는 일이 있습니다.
이런 경우에 런타임에서 타이밍을 보고 로드할지 여부를 결정하는 방법이 있으므로 그쪽 다음 기사에서 확인해 갑니다.
다음 기사: 나중에 링크 만들기
Reference
이 문제에 관하여([UE4] C++ 생성자에서 블루프린트 자산을 로드하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/4_mio_11/items/45326f691118adf3da86텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)