当前位置:   article > 正文

Unity学习之_编辑器扩展_unity 编辑器扩展

unity 编辑器扩展

Unity编辑器扩展是对现有的Unity进行自定义功能扩展的一种方法,可以简化一些重复的开发动作,也可以用于制作插件

unity编辑器模式

unity的编辑器扩展绝大部分是用于unity的编辑器模式下,我们扩展的方法都是为了提高开发效率,但是这些方法在游戏运行时并没有作用。不需要将他们打包进工程,所以我们需要把这些不需要打包的资源和脚本放入名字是Editor的文件夹下,这个文件夹可以是跟目录也可以是子目录只要名字不写错就可以。

MenuItem特性

这里先介绍MenuItem特性(以下仅是我知道的)

  • 添加自定义菜单项到Unity的大部分面板
  • MenuItem是能做用于静态方法,因为Unity需要通过类名来调用
  • MenuItem特性的方法可以放在任何脚本中
  • MenuItem的三个参数(string itemName, bool isValidateFunction,int priority)
    • string itemName:按钮方法的路径
    • bool isValidateFunction:默认值false,剩下的一句话说不清,看下面。。。
    • int priority:按钮在列表里的显示顺序和分组情况

在Unity菜单栏上添加自定义方法按钮
在这里插入图片描述
第一步、在Editor文件夹下新建一个脚本,写上下面的代码

using UnityEngine;
using UnityEditor;

//因为这个脚本不需要作为组件存在所以不需要继承自MonoBehaviour
public class NewButton
{
    //MenuItem(string itemName,bool isValidateFunction,int priority);
    [MenuItem("NewButton/Test1",false,1)]
    static void Test1()
    {
        Debug.Log("Test1");
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

菜单栏上就会显示,我们点击Test1就会运行debug方法
在这里插入图片描述
再加上几行代码

[MenuItem("NewButton/Test2",false,2)]
    static void Test2()
    {
        Debug.Log("Test2");
    }

    [MenuItem("NewButton/Test3", false, 13)]
    static void Test3()
    {
        Debug.Log("Test3");
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

在这里插入图片描述
这里我们发现 int priority 参数越小,在菜单列表的位置越靠上,当两个相邻的int priority值的差 >=

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/786397
推荐阅读
相关标签
  

闽ICP备14008679号