unityloverz 发表于 2022-6-2 08:07

【UE4编辑器】 MenuBar菜单栏扩展

专栏目录:
<hr/>MenuBar菜单栏扩展可以有效的组合我们对编辑器的扩展功能,把我们写好的一系列功能整合到一个独立的菜单栏,显得更加规整,参考环境UE4.26

[*]效果展示



[*]示例代码

[*]获取LevelEditor模块并添加菜单栏扩展的绑定事件

        {
                FLevelEditorModule& LevelEditorModule = FModuleManager::LoadModuleChecked< FLevelEditorModule >("LevelEditor");
               
                TSharedRef<FExtender> MenuBarExtender = MakeShared<FExtender>();
                MenuBarExtender->AddMenuBarExtension("Help", EExtensionHook::After, PluginCommands, FMenuBarExtensionDelegate::CreateRaw(this, &FSimpleEditorsModule::AddMenuBarExtension));

                LevelEditorModule.GetMenuExtensibilityManager()->AddExtender(MenuBarExtender);
        }


[*]添加一个Tools菜单栏并绑定下拉菜单事件

void FSimpleEditorsModule::AddMenuBarExtension(FMenuBarBuilder &Builder)
{
        Builder.AddPullDownMenu(
                LOCTEXT("CUSTOMTOOLS", "Tools"),
                LOCTEXT("I AM TOOL", "I am tool"),
                FNewMenuDelegate::CreateRaw(this, &FSimpleEditorsModule::PullDwonBar),
                "Tools");
}


[*]自定义下拉菜单功能

void FSimpleEditorsModule::PullDwonBar(FMenuBuilder& Builder)
{
        Builder.AddMenuEntry(FSimpleEditorsCommands::Get().PluginAction);

        Builder.BeginSection(TEXT("Others"));
        {
                Builder.AddWidget(
                        SNew(SImage),
                        LOCTEXT("IamgeWidget", "Iamge widget")
                );

                Builder.AddEditableText(
                        LOCTEXT("EditableText", "EditableText"),
                        LOCTEXT("EditableText_Tips", "EditableText_Tips"),
                        FSlateIcon(),
                        LOCTEXT("Text", "Hello World!!!")
                );
        }
        Builder.EndSection();

        Builder.AddMenuSeparator();
        Builder.AddMenuEntry(FSimpleEditorsCommands::Get().PluginAction);
        Builder.AddMenuEntry(FSimpleEditorsCommands::Get().PluginAction);
}

[*]补充说明

[*]Builder.AddSubMenu(); 可以扩展下拉菜单的子菜单
[*]FExtender类的AddMenuBarExtension可以扩展菜单栏;AddMenuExtension可以扩展菜单;AddToolBarExtension可以用来扩展工具栏菜单

NEXT:
页: [1]
查看完整版本: 【UE4编辑器】 MenuBar菜单栏扩展