•  Asset
    • BP 등 컨텐츠 브라우저에 노출되는 대상의 총칭
    • Object Path : /Game/MyFolder/BP_MyBP.BP_MyBP'
    • Package Path : /Game/MyFolder/
    • Asset Name : BP_MyBP
  • Actor
    • World에 배치되는 대상의 총칭

 

기본 세팅

기본 세팅 

module의 build.cs파일 세팅

  • Blutility 추가 ( AssetActionUtility.h 및 ActorActionUtility.h가 해당 모듈에 포함되어 있음 )
    • PrivateIncludePaths.AddRange
      • System.IO.Path.GetFullPath(Target.RelativeEnginePath) + "/Source/Editor/Blutility/Private"
    • PublicDependencyModuleNames.AddRange
      • "Blutility"
  • UFUNCTION(CallInEditor)
  • AssetActionUtility 자식 클래스로 생성
    • plugin폴더 / contents / 우클릭 → editor utility → editor utility blueprints 생성 → 만든 클래스 상속 → 재접속
  • Editor UI Name 활성화 - editor preference - Display UI Extension Points
주요 레퍼런스 헤더

주요 레퍼런스 헤더

<FAssetData>

  • Reflection 통해서 접근가능한 메타데이터 타입?
    • GetClass()
    • isA<UObject>

 

Paths.h

  • Combine(<FString> a, <FString> b) : 경로문자열과 경로문자열을 합침

 

UEditorUtilityLibrary.h

  • TArray<FAssetData> GetSelectedAssetData()
    • <FName> ObjectPath
    • <FName> PackagePath
    • <FName> AssetName

 

UEditorAssetLibrary.h 

  • <bool> DuplicateAsset( {source path}, {target path} )
  • <bool> SaveAsset( {target path}, dirty조건 여부 )
  • <FString> FindPackageReferencersForAsset(에셋경로) : 해당 에셋에 reference가 걸린 대상들 리스트 반환

 

FMessageDialog

  • Open( <EAppMsgType> 메시지 타입, 기타등등 )

 

FSlateNotificationManager::Get()

  • AddNotification : 에디터 우측하단 메시지

 

ObjectTools

  • DeleteAssets ( TArray<FString> )

 

FModuleManager

  • <FContentBrowserModule> (static) LoadModuleChecked<FContentBrowserModule>(TEXT("name"))

FContentBrowserModule

  • <TArray<FContentBrowserMenuExtender_SelectedPaths>> GetAllPathViewContextMenuExtenders();
  • 해당 어레이에 델리게이트 집어넣으면 메뉴에 추가되는 듯?
Tips

  • 블루프린트는 UBlueprint를 상속 
  • EditorUtilityLibrary의 GetSelectedAsset은 <UObject*>를 반환 ( 언리얼 스트럭쳐 최상위 부모 )
  • UObject
    •  GetClass()
      • GetName()
  • FString
    • StartWith()
    • From~~()

 

특정 메뉴에 리스트 추가하기

IModuleInterface 상속

  • virtual void StartupModule() override에서 delegate를 binding 하는 함수 실행
  • 컨텐츠 브라우저 메뉴 ex
    • FModuleManager::LoadModuleChecked<FContentBrowserModule>(TEXT("ContentBrowser"))
        .GetAllPathViewContextMenuExtenders().Add(
          FContentBrowserMenuExtender_SelectedPaths::CreateRaw( this, &함수명 ));
    • 즉, module를 통해 path view context menu array에 content browser menu 타입 델리게이트를 만들어서 추가해야 함 ( 출력되는 영역에 대한 정의 )
    • 함수는 const TArray<FString>& 선택된 경로들을 파라미터로 받음
    • 이 타입을 FMenuBuilder&를 parameter로 받으며, 해당 스트럭쳐에서 .AddMenuEntry함수를 통해 FExecuteAction 델리게이트를 쑤셔넣음 ( 수행에 대한 정의 )

'Unreal > 툴 에디터' 카테고리의 다른 글

플러그인 만들기  (0) 2024.05.21

+ Recent posts