添加到自建菜单下
using UnityEditor;
using UnityEngine;
public class MenuItemTest
{
[MenuItem("Tools/test")]
static void Test()
{
Debug.Log("test");
}
}
添加到已有菜单下,并设置优先级
默认优先级为1000,一般为菜单最底一项
[MenuItem("GameObject/ts1")]
static void ts1()
{
Debug.Log("ts1");
}
- 菜单下的菜单项按照优先级分组,每组间隔10
- 在Hierarchy窗口鼠标右键显示的是GameObjec菜单的内容;在Projec窗口鼠标右键显示的是Assets菜单的内容,不过需要在特定组的才会显示。
eg:
[MenuItem("GameObject/ts1",false,6)]
static void ts1()
{
Debug.Log("ts1");
}
添加到右键脚本组件时的菜单栏中
代码:
[MenuItem(“CONTEXT/脚本名/xxx”)]
sing UnityEditor;
using UnityEngine;
public class ScriptEditorTest
{
[MenuItem("CONTEXT/脚本名/xxx")]
static void fun1()
{
Debug.Log("fun1");
}
}
MenuCommand的使用
使用MenuCommand可以获取右键的组件对象
eg:右键菜单修改Rigidbody的属性
[MenuItem("CONTEXT/Rigidbody/xxx")]
static void fun2(MenuCommand cmd)
{
Rigidbody rigidbody = cmd.context as Rigidbody;
rigidbody.mass = 1.0f;
rigidbody.useGravity = false;
}