前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Unity开发-编辑器:属于自己的编辑菜单

Unity开发-编辑器:属于自己的编辑菜单

作者头像
孙寅
发布2020-06-02 17:23:10
1K0
发布2020-06-02 17:23:10
举报
文章被收录于专栏:宜达数字宜达数字

正所谓:人靠衣装,佛靠金装。程序也如此,好的程序给人高潮。 例如下面的例子:

1.png

里面的菜单是系统自带的,但是如何能在里面留下我们的痕迹呢?

1、Editor(编辑器)
代码语言:javascript
复制
using UnityEngine;
using System.Collections;
using UnityEditor;   // 引用命名控件

public class EditorTest : Editor {  // 继承Editor这个类

    [MenuItem("SYTest/测试窗口", false)]
    static void STest()
    {
        Debug.Log("测试窗口");
    }
    // 快捷键是F1...F2 = F...
    [MenuItem("SYTest1/测试窗口1 F2", false)]
    static void Test1()
    {
         Debug.Log("测试窗口1");
    }
    // 添加快捷键: % = Ctrl, # = Shift, & = Alt
    // 如果是a-z,则前面写_a - _z这种带_前缀的
    [MenuItem("SYTest2/测试窗口2 %_K", false)]
    static void Test2()
    {
         Debug.Log("测试窗口2");
    }
}

效果图:

2.png

1、多级菜单:

3.png

内部实现:

代码语言:javascript
复制
[MenuItem("SYTest2/测试窗口1/我是谁 %_O",false,1)]
    static void Test3()
    {
         Debug.Log("我是谁");
    }
    [MenuItem("SYTest2/测试窗口1/我是1号 %_O",false,2)]
    static void Test4()
    {
         Debug.Log("我是1号");
    }
     //后面的数字,代表优先级,数字越小,显示越靠前
    [MenuItem("SYTest2/测试窗口1/我是2号 %_O",false,3)]
    static void Test5()
    {
         Debug.Log("我是2号");
    }

2、不可选菜单

4.png

代码语言:javascript
复制
    [MenuItem("SYTest2/测试窗口1/我是2号 %_O", true)]
    static bool TestSy()
    {
        object obj = Selection.activeObject;
        // 首先不等与空,并且obj的类型是GameObject类型
        return obj != null && obj.GetType() == typeof(GameObject);
    }
    [MenuItem("SYTest2/测试窗口1/我是2号 %_O")]
    static void Test6()
    {
         Debug.Log("我是2号");
    }
2.Inspector面板

我们添加系统组件的时候,发现面板很好看,而脚本做不到这种效果。 利用GUILayout 绘制UI控件

1.png

3.窗口的菜单

2.png

填充更多内容

3.png

4.png

4.如何为Assets添加额外扩展

5.png

总结:

顶部编辑器菜单:引用using UnityEditor; 使用[MenuItem()]; Inspector面板的处理:继承Editor,重写虚方法:OnInspectorGUI(),并调用(父类的此方法)base.OnInspectorGUI() 窗口的面板:继承:EditorWindow, 使用EditorWindow.GetWindow(); 调用窗口的Show()方法。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、Editor(编辑器)
  • 2.Inspector面板
  • 3.窗口的菜单
    • 4.如何为Assets添加额外扩展
    • 总结:
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档