에디터 버튼 추가

 

에디터 버튼 추가

image.png

이런 특정 버튼을 추가하는 기능을 구현한다.

1. 툴바 확장자 생성

  1. 툴바 확장자 생성
  2. 커스텀 버튼 추가
  3. 레벨 에디터에 등록
    // 툴바 확장자 생성
    TSharedPtr<FExtender> ToolbarExtender = MakeShareable(new FExtender);

    // "Content" 툴바 섹션 뒤에 버튼 추가
    ToolbarExtender->AddToolBarExtension(
        // 기준 섹션 (콘텐츠 버튼 뒤)
        "Content",                    
        // 그 뒤에
        EExtensionHook::After,       
        // 명령 목록
        nullptr,                 
        // 생성된 이후 호출될 델리게이트
        FToolBarExtensionDelegate::CreateRaw(this, &FTestEditor::AddToolbarButton)
    );

    // 툴바 확장 등록
    LevelEditorModule.GetToolBarExtensibilityManager()->AddExtender(ToolbarExtender);

2. 호출될 Deleaget구현

void FTestEditor::AddToolbarButton(FToolBarBuilder& ToolbarBuilder)
{
    ToolbarBuilder.AddToolBarButton(
        FUIAction(
            FExecuteAction::CreateLambda([]()
                {
                    // 버튼 눌렀을 때 동작
                    UE_LOG(LogTemp, Log, TEXT("툴바 버튼 클릭됨!"));
                })
        ),
        FName(TEXT("MyButton")),
        FText::FromString(TEXT("My Button")),
        FText::FromString(TEXT("Tool tip")),
        FSlateIcon(FEditorStyle::GetStyleSetName(), "LevelEditor.GameSettings") // 예시 아이콘
    );
}

image.png

GitHub Code