Built-in Menu Items¶
内置菜单,一个开始,一个起点
TIP
内置工具除了随着插件发布,也可以在DefaultResources@Github获得
内置菜单¶
OnToolbar¶
主工具栏中的Python图标下拉按钮,用来放置直接执行的Python命令。
在这里预置了用于快速在编辑器中获取对象的菜单项,打印资源间的引用和依赖关系和执行GC命令的菜单项等
OnToolBarChameleon¶
主工具栏中的绿色变色龙图标,用来放置ChameleonTools
OnSelectAssetsMenu¶
选中资源,右键弹出菜单
在这个菜单项的配置中,使用了"canExecuteAction"
字段。其中的Python代码的返回值会决定菜单项是否可被点击。(不可点击时为灰色)
MenuConfig.json::OnSelectAssetsMenu
"name": "TA Python Example",
"items": [
{
"name": "Example (3): Log BP Classes",
"tooltip": "Only Actived when Blueprint selected",
"command": "import Utilities, QueryTools; QueryTools.Utils.log_classes(Utilities.Utils.get_selected_assets()[0]) ",
"canExecuteAction": "import QueryTools; return QueryTools.Utils.is_selected_asset_type([unreal.Blueprint])"
}
]
TIP"canExecuteAction"
中的代码会在widget Tick中执行,因此需要避免使用重度的Python代码
OnSelectFolderMenu¶
在ContentBrowser中,选中目录,或者空白处,右键弹出菜单
演示菜单项和子菜单项
OnMainMenu¶
在主菜单的Tools菜单项下的菜单
OnOutlineMenu¶
在Outline窗口中,选中物体,右键弹出菜单
OnMaterialEditorMenu¶
在材质编辑的Tools菜单项下的菜单。有打印选中的节点,将其赋予全局变量"_r"
等功能
OnTabContextMenu¶
"OnTabContextMenu"
是一个全局菜单项,它会应用到所有的ChameleonTool上(Sketch除外)
TIP"OnTabContextMenu"
只在UE5中有效
在默认资源中,就给所有的ChamaleonTool添加了一个"Reload this tool",菜单项。利用ChameleonTools再从新打开时,可以自动更新修改过的界面的特性,使得我们在开发工具的过程中,使得界面和逻辑能够即时生效
MenuConfig.json
"OnTabContextMenu":{
"name": "TA Python Tab",
"items": [
{
"name": "Reload this tool",
"command": "unreal.ChameleonData.request_close(%tool_path); unreal.ChameleonData.launch_chameleon_tool(%tool_path)"
}
]
}
例如下图的例子中,我们可以在修改玩界面和Python逻辑的同时,通过这个"Reload"菜单,使得修改立即生效
更多关于界面和逻辑Reload的内容可见这里:每次启动时自动reload python逻辑
参考¶
此外,我们还可以通过配置给材质编辑器,物理资源编辑器等添加菜单项,具体的做法可见这里