AlicizaX/Client/Assets/Books/EditorExtension/CustomToolbarItems.md

56 lines
2.3 KiB
Markdown
Raw Normal View History

2026-04-01 13:20:06 +08:00
# 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/` 下的场景。
- 切换前会检查当前场景未保存状态。