88 lines
2.6 KiB
Markdown
88 lines
2.6 KiB
Markdown
# EditorExtension 基础工具模块手册
|
|
|
|
## 模块概述
|
|
基础工具模块由 `EditorIcons` 和 `EditorToolFunctionAttribute` 两部分组成:
|
|
- `EditorIcons`:浏览、检索、预览并导出 Unity 内置编辑器图标。
|
|
- `EditorToolFunctionAttribute`:把静态方法声明为“编辑器快捷工具”,供 `EditorQuickToolBar` 自动收集。
|
|
|
|
## 适用场景
|
|
- 快速查找 Unity 内置图标。
|
|
- 将团队常用编辑器方法集中到工具栏菜单。
|
|
- 避免为每个工具重复创建顶级菜单。
|
|
|
|
## 快速上手
|
|
### 打开图标浏览器
|
|
- 菜单:`Tools/Extension/Editor Icons`
|
|
|
|
### 声明工具函数
|
|
```csharp
|
|
using AlicizaX.Editor.Extension;
|
|
using UnityEngine;
|
|
|
|
public static class DemoEditorTools
|
|
{
|
|
[EditorToolFunction("Demo/打印当前场景", 10)]
|
|
public static void PrintScene()
|
|
{
|
|
Debug.Log(UnityEditor.SceneManagement.EditorSceneManager.GetActiveScene().path);
|
|
}
|
|
}
|
|
```
|
|
|
|
## 详细使用说明
|
|
### `EditorIcons`
|
|
- 支持关键字搜索。
|
|
- 支持大小图标切换。
|
|
- 支持单个导出 PNG。
|
|
- 支持批量导出全部图标到目录。
|
|
|
|
### `EditorToolFunctionAttribute`
|
|
- 仅扫描静态方法。
|
|
- 扫描时机为编辑器加载阶段。
|
|
- 扫描结果按 `MenuOrder` 升序排列。
|
|
- 建议被标记的方法不要带参数。
|
|
|
|
## 可调用 API
|
|
### 类型:`EditorIcons`
|
|
源码:`Packages/com.alicizax.unity.editor.extension/Editor/EditorIcons.cs`
|
|
|
|
#### `public static void EditorIconsOpen()`
|
|
- 作用:打开图标浏览窗口。
|
|
- 参数:无。
|
|
- 返回值:`void`。
|
|
|
|
#### `public static string[] ico_list`
|
|
- 作用:内置图标名称列表。
|
|
- 示例:
|
|
```csharp
|
|
foreach (var iconName in EditorIcons.ico_list)
|
|
{
|
|
Debug.Log(iconName);
|
|
}
|
|
```
|
|
|
|
### 类型:`AlicizaX.Editor.Extension.EditorToolFunctionAttribute`
|
|
源码:`Packages/com.alicizax.unity.editor.extension/Editor/EditorToolFunctionAttribute.cs`
|
|
|
|
#### `public EditorToolFunctionAttribute(string menu, int menuOrder = 0)`
|
|
- 作用:声明工具菜单路径与排序值。
|
|
- 参数:
|
|
- `menu`:菜单路径。
|
|
- `menuOrder`:排序值。
|
|
|
|
#### `public string ToolMenuPath { get; }`
|
|
- 作用:获取菜单路径。
|
|
|
|
#### `public int MenuOrder { get; }`
|
|
- 作用:获取排序值。
|
|
|
|
#### `public MethodInfo MethodInfo { get; }`
|
|
- 作用:获取实际绑定的方法信息。
|
|
|
|
#### `public void SetMethodInfo(MethodInfo methodInfo)`
|
|
- 作用:由收集器在扫描时写入目标方法。
|
|
|
|
## 集成建议
|
|
- 推荐把所有项目编辑器命令统一声明为 `EditorToolFunctionAttribute`。
|
|
- 图标挑选可先通过 `EditorIcons` 查名,再用于按钮和菜单项。
|