UE5 Editor学习笔记
参考
创建Editor Module
打开C++项目,创建一个Editor类型的UE Module
class FEdgeEditorModule : public IModuleInterface { public: virtual void StartupModule() override; virtual void ShutdownModule() override; void AddMenu(FMenuBarBuilder& MenuBarBuilder); void FileMenu(FMenuBuilder& MenuBuilder); };
|
void FEdgeEditorModule::StartupModule() { FLevelEditorModule& LevelEditorModule = FModuleManager::LoadModuleChecked<FLevelEditorModule>("LevelEditor"); const TSharedPtr<FExtender> MenuExtender = MakeShareable(new FExtender()); MenuExtender->AddMenuBarExtension("Help", EExtensionHook::After, nullptr, FMenuBarExtensionDelegate::CreateRaw(this, &FEdgeEditorModule::AddMenu)); LevelEditorModule.GetMenuExtensibilityManager()->AddExtender(MenuExtender); }
void FEdgeEditorModule::AddMenu(FMenuBarBuilder& MenuBarBuilder) { MenuBarBuilder.AddPullDownMenu(FText::FromString("Hard Edge"), FText::FromString("Hard Edge Tools"), FNewMenuDelegate::CreateRaw(this, &FEdgeEditorModule::FileMenu)); } void FEdgeEditorModule::FileMenu(FMenuBuilder& MenuBuilder) { MenuBuilder.AddMenuEntry(FText::FromString("A Tool"), FText::FromString("A Tool Tooltip"), FSlateIcon(), FUIAction(FExecuteAction::CreateLambda([]() { UE_LOG(LogEdgeEditor, Log, TEXT("A Tool Clicked")); }))); }
|
自定义Log
DECLARE_LOG_CATEGORY_EXTERN(LogEdgeEditor, All, All);
|
DEFINE_LOG_CATEGORY(LogEdgeEditor);
|
编辑菜单
输入控制台命令
即可编辑菜单栏