【UE4】AssetRegistry 등으로 블루프린트 클래스를 취득·작성하는 방법
본제의 주지
블루프린트 내에서 사용할 수 있는 AssetRegistry 로, 임의의 컨텐츠 디렉토리로부터 에셋을 취득하는 것이 가능합니다만, 이 방법으로 블루프린트 클래스를 취득하고 싶을 경우에 문제가 발생합니다.
구체적으로 설명하면, AssetRegistry 는 「어셋 오브젝트」를 취득하기 위해, 블루프린트를 취득하는 것은, 「블루프린트 애셋(UBlueprint 클래스)」으로서 취득된다고 하는 것.
이것을 해결하는 방법을 소개합니다.
UE4.24의 내용입니다.
방법
방법은 (C++를 사용하면) 간단.
다음과 같은 블루프린트 공개 함수를 준비하기만 하면 됩니다.
BlueprintUtilityLibrary.cppbool UBlueprintUtilityLibrary::GetClassFromBlueprintAsset(UObject *BlueprintAsset, UClass *&Class)
{
if (UBlueprint *BP = Cast<UBlueprint>(BlueprintAsset))
{
Class = BP->GeneratedClass;
return true;
}
return false;
}
UBlueprint 클래스 자체는 블루프린트 비공개 클래스이므로 블루프린트 내에서 액세스할 수 없습니다. 위의 함수는 그 부분만을 기술하고 있습니다.
건네받은 블루프린트 에셋으로부터 내부에서 정의된 실제의 블루프린트 클래스를 꺼내, 그것을 돌려줍니다.
사용법은 다음과 같은 느낌입니다.
AssetRegistry 에 한정하지 않고, 에셋 오브젝트를 취득하는 처리에 이 함수를 사용할 수가 있으므로, 의외로 사용할 수 있는 폭은 넓다고 생각합니다.
Reference
이 문제에 관하여(【UE4】AssetRegistry 등으로 블루프린트 클래스를 취득·작성하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Mitsunagi/items/658635ad08593841375e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
bool UBlueprintUtilityLibrary::GetClassFromBlueprintAsset(UObject *BlueprintAsset, UClass *&Class)
{
if (UBlueprint *BP = Cast<UBlueprint>(BlueprintAsset))
{
Class = BP->GeneratedClass;
return true;
}
return false;
}
Reference
이 문제에 관하여(【UE4】AssetRegistry 등으로 블루프린트 클래스를 취득·작성하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Mitsunagi/items/658635ad08593841375e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)