【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.)
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (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.)