EUWというツールメニューにも自動で登録されるような便利な機能がありますが、何らかの理由でエディターのメニューにカスタムの項目を追加したい場合、Pythonからやる方法が結構簡単だった、かつあまり情報が無かったので置いておきます。
早速ですがコード
import unreal
def main():
#メニューオブジェクトに、セクションを追加する
ToolMenus = unreal.ToolMenus.get()
ToolMenu = ToolMenus.find_menu("LevelEditor.MainMenu.Tools")
ToolMenu.add_section(section_name="mytools",label="My Tools",insert_type=unreal.ToolMenuInsertType.DEFAULT,)
#新しく追加したセクションに追加するエントリーを作成して追加する
entry = unreal.ToolMenuEntry(name="newentry", type=unreal.MultiBlockType.MENU_ENTRY)
entry.set_label("New Entry")
entry.set_string_command(unreal.ToolMenuStringCommandType.PYTHON, "", "hoge()")
ToolMenu.add_menu_entry("mytools", entry)
#追加されたエントリーから呼ばれる関数
def hoge():
print("fugaaaaaaaa")
main()
これをご存知の通りのContent/Python下のinit_unreal.pyに書けば、エディター起動時に"Tools"メニューにカスタムのメニューを追加できます。
ちゃんと関数も呼べています。
メニューの拡張はC++とかBPでやるのが一般的な印象ですが、Pythonだと結構シンプルに実現出来ているのではないでしょうか。
何かのヒントになれば幸いです。