Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

自定义菜单栏拓展

一、特殊文件夹 Editor

Editor 文件夹下的文件不会被打包出去 编辑器相关的脚本都要放置在其中,避免打包报错

二、菜单栏中添加自定义标签

  1. 命名空间: UnityEditor
  2. 特性: MenuItem
  3. 使用方法: [MenuItem("页签/一级选项/二级选项/···")]
  4. 作用: 当在菜单栏点击该页签时,将执行静态函数中的逻辑
  5. 注意点:
    1. 不用在意继承对象
    2. 斜杠必须左斜/
1
2
3
4
5
[MenuItem("Unity编辑器拓展/Lesson1/TestFun")]
private static void TestFun()
{
Debug.Log("菜单栏拓展");
}

三、Hierarchy 窗口中添加自定义页签

  1. 命名空间: UnityEditor
  2. 特性: MenuItem
  3. 使用方法: 在静态函数前,加上页签命名放入 GameObject 路径 [MenuItem("GameObject/页签/一级选项/二级选项/···")]
  4. 注意点:
    1. 不用在意继承对象
    2. 斜杠必须左斜/
    3. 在菜单栏的 GameObject 中也会出现对应选项
1
2
3
4
5
[MenuItem("GameObject/Unity编辑器拓展/Lesson1/TestFun2")]
private static void TestFun2()
{
Debug.Log("Hierarchy 窗口拓展");
}

四、Project 窗口中添加自定义标签

  1. 命名空间: UnityEditor
  2. 特性: MenuItem
  3. 使用方法: 在静态函数前,加上页签命名放入 GameObject 路径 [MenuItem("Assets/页签/一级选项/二级选项/···")]
  4. 注意点:
    1. 不用在意继承对象
    2. 斜杠必须左斜/
    3. 在菜单栏的 Assets 中也会出现对应选项
1
2
3
4
5
[MenuItem("Assets/Unity编辑器拓展/Lesson1/TestFun2")]
private static void TestFun3()
{
Debug.Log("Assets窗口拓展");
}

五、菜单栏中的 Component 菜单中添加脚本

  1. 命名空间: UnityEngine
  2. 特性: AddComponentMenu
  3. 用法: 想要通过 Component 菜单添加的脚本前加上 AddComponentMenu("一级选项/二级选项/···")
  4. 注意:
    1. 脚本必须继承 Mono
    2. 斜杠必须左斜/
    3. 最后一级选项的名字可以和脚本名字不一样,但建议一致
1
2
3
4
[AddComponentMenu("Unity编辑器拓展/添加脚本/Lesson1Test")]
public class Lesson1Test : MonoBehaviour
{
}

六、Inspector 窗口 右键脚本菜单中添加

  1. 命名空间: UnityEditor
  2. 特性: MenuItem
  3. 用法: 在静态函数前添加 MenuItem("CONTEXT/脚本名/页签/一级选项/二级选项/···")
  4. 注意:
    1. 不用在意继承
    2. 斜杠必须左斜/
1
2
3
4
5
[MenuItem("CONTEXT/Lesson1Test/Unity编辑器拓展/Lesson1/TestFun2")]
private static void TestFun4()
{
Debug.Log("Inspector 窗口 右键脚本菜单中拓展");
}

七、加入快捷键

  1. 单键 路径后 + 空格 + 下划线 + 想要的按键
  2. 组合键 路径后 + 空格 + 特殊符号 + 想要的按键 特殊符号
    • % 表示 ctrl
    • # 表示 Shift
    • & 表示 alt
  3. 其他支持按键
    • LEFT、RIGHT : 类似#LEFT 是左 shift 之类的按键
    • UP、DOWN、F1、···、F12、HOME、END、PGUP、PGDN
1
2
3
4
5
[MenuItem("Unity编辑器拓展/Lesson1/TestFun _F4")]
private static void TestFun()
{
Debug.Log("菜单栏拓展");
}

评论