菜单MenuItem

添加到自建菜单下

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");
}
  1. 菜单下的菜单项按照优先级分组,每组间隔10
  2. 在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;
    }
发布了24 篇原创文章 · 获赞 0 · 访问量 660

猜你喜欢

转载自blog.csdn.net/u014589770/article/details/104925584