AlicizaX/Client/Assets/Books/EditorExtension/BaseTools.md
2026-04-01 13:20:06 +08:00

2.6 KiB

EditorExtension 基础工具模块手册

模块概述

基础工具模块由 EditorIconsEditorToolFunctionAttribute 两部分组成:

  • EditorIcons:浏览、检索、预览并导出 Unity 内置编辑器图标。
  • EditorToolFunctionAttribute:把静态方法声明为“编辑器快捷工具”,供 EditorQuickToolBar 自动收集。

适用场景

  • 快速查找 Unity 内置图标。
  • 将团队常用编辑器方法集中到工具栏菜单。
  • 避免为每个工具重复创建顶级菜单。

快速上手

打开图标浏览器

  • 菜单:Tools/Extension/Editor Icons

声明工具函数

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

  • 作用:内置图标名称列表。
  • 示例:
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 查名,再用于按钮和菜单项。