unity编辑器(二)——MenuItem
一、自定义菜单
using UnityEngine;
using UnityEditor;//一定要引用这个命名空间
public class Tools {
//添加菜单名为Tools到主菜单
[MenuItem("MyTools/Tools")]
static void Test() //一定要写static,不然无效
{
Debug.Log("Test");
}
}
二、实现分组和排序
//每个菜单栏的priorty默认优先级为1000
//所以改变priorty的优先级就可以实现分组和排序
[MenuItem("MyTools/Tools1",false,100)]
static void Test1()
{
Debug.Log("Test1");
}
[MenuItem("MyTools/Tools2", false, 9)]
static void Test2()
{
Debug.Log("Test2");
}
[MenuItem("MyTools/Tools3", false, 10)]
static void Test3()
{
Debug.Log("Test3");
}
[MenuItem("MyTools/Tools4", false, 21)]
static void Test4()
{
Debug.Log("Test4");
}
三、自定义快捷键
//自定义快捷键 % 代表 Ctrl,# 代表 Shift
[MenuItem("MyTools/Tools2 %#a", false, 9)]
static void Test2()
{
Debug.Log("Test2");
}
[MenuItem("MyTools/Tools3 %b", false, 10)]
static void Test3()
{
Debug.Log("Test3");
}
//添加 C 快捷键时使用”_c“
[MenuItem("MyTools/Tools4 _c", false, 21)]
static void Test4()
{
Debug.Log("Test4");
}
四、在Inspector中添加上下文菜单
MyGameObject脚本是在我的上一篇博客写的 —— [ 传送门]
//在Inspector中添加上下文菜单
//CONTEXT+组件名+按键名 (注“CONTEXT“必须要写)
[MenuItem("CONTEXT/MyGameObject/Enlarge", false, 22)]
static void IntSpeed(MenuCommand command)
{
MyGameObject myGame = command.context as MyGameObject;
myGame.m_Range += 1f;
}
[MenuItem("CONTEXT/Transform/chang", false, 22)]
static void IntSpeed1(MenuCommand command)
{
Transform Tran = command.context as Transform;
Tran.transform.position = new Vector3(10, 10, 10);
}
上一篇 [ unity编辑器]