# EditorExtension 自定义工具栏项目模块手册 ## 模块概述 `ToolBarExtension` 目录在 `Toolbar` 框架之上实现了一组项目级工具栏元素: - `EditorQuickToolBar` - `LocalizationDropdownField` - `ResourceModeDropdownField` - `SwitchSceneToolBar` - `BuildSettingWindow`(当前源码为注释模板) ## 适用场景 - 快速切换语言、资源模式与场景。 - 把项目工具统一收口到主工具栏。 - 自动调度 `EditorToolFunctionAttribute` 标记的方法。 ## 快速上手 这些类型均通过 `MainToolbarElementAttribute` 自动挂载,无需手动注册。 ## 可调用 API ### 类型:`AlicizaX.Editor.Extension.EditorQuickToolBar` 源码:`Packages/com.alicizax.unity.editor.extension/Editor/ToolBarExtension/EditorQuickToolBar.cs` - `InitializeElement()`:初始化工具下拉按钮。 ### 类型:`LocalizationDropdownField` 源码:`Packages/com.alicizax.unity.editor.extension/Editor/ToolBarExtension/LocalizationDropdownField.cs` - `InitializeElement()`:初始化语言切换下拉框。 - `InvokeOnValidateInScene()`:强制刷新场景中所有 `UXTextMeshPro` 的编辑器预览。 ### 类型:`AlicizaX.Editor.Extension.ResourceModeDropdownField` 源码:`Packages/com.alicizax.unity.editor.extension/Editor/ToolBarExtension/ResourceModeDropdownField.cs` - `InitializeElement()`:初始化资源模式下拉框。 ### 类型:`SwitchSceneToolBar` 源码:`Packages/com.alicizax.unity.editor.extension/Editor/ToolBarExtension/SwitchSceneToolBar.cs` - `InitializeElement()`:初始化场景切换按钮并监听场景切换。 ### 类型:`BuildSettingWindow` - 说明:当前源码整体注释,无生效公开 API,可作为未来扩展模板。 ## 详细使用说明 ### `EditorQuickToolBar` - 从 `EditorToolFunctionAttributeCollector.Attributes` 读取菜单项。 - 点击菜单后通过反射执行静态方法。 ### `LocalizationDropdownField` - 读取语言列表并写入 `EditorPrefs`。 - 切换后会刷新场景里的 `UXTextMeshPro` 文本预览。 ### `ResourceModeDropdownField` - 提供 `Editor / Offline / Host / Webgl` 四种模式。 - 模式结果通过 `EditorPrefs` 持久化。 ### `SwitchSceneToolBar` - 默认扫描 `Assets/Bundles/` 与 `Assets/Scenes/` 下的场景。 - 切换前会检查当前场景未保存状态。