利用unity的MenuItem给自己的编辑器增加一点定制选项

MenuItem是unity自带的特性,利用它我们可以方便的在编辑器里面加加入一些功能,以下是一些常用功能的总结,注意,需要把文件放在Assets下的Editor文件夹下.

using UnityEngine;
using UnityEditor;
using System.Collections;

public class MenuTest : MonoBehaviour {
    /// <summary>
    /// 增加一个MyMenu菜单下的show选项
    /// </summary>
    [MenuItem("MyMenu/show")]
    static void Show() {
        print("haha");
    }
    /// <summary>
    /// 增加一个MyMenu菜单下的printName选项,并且只有选中物体时才可以
    /// </summary>
    [MenuItem("MyMenu/ShowSelectedName")]
    static void PrintName() {
        print("Selected Transform name is " + Selection.activeTransform.gameObject.name);
    }
    [MenuItem("MyMenu/ShowSelectedName", true)]
    static bool Validate() {
        return Selection.activeTransform != null;
    }
    /// <summary>
    /// 添加一个选项,并且指定快捷方式为ctrl + G,%代表Ctrl键(mac机上面是cmd键)  #代表Shirt键   &代表Alt键
    /// </summary>
    [MenuItem("MyMenu/shortCutKey % g")]
    static void DoSomethingWithAShortcutKey() {
        print("push down ctrl + g");
    }
    /// <summary>
    /// 给刚体组件的菜单增加一个double选项
    /// </summary>
    /// <param name="command"></param>
    [MenuItem("CONTEXT/Rigidbody/Double Mass")]
    static void DoubleMass(MenuCommand command) {
        Rigidbody body = (Rigidbody)command.context;
        body.mass = body.mass * 2;
        print("double mass to " + body.mass);
    }
    /// <summary>
    /// 在GameObject的子菜单下新建目录选项,并设置撤销新建时的提示
    /// </summary>
    /// <param name="menuCommand"></param>
    [MenuItem("GameObject/MyCategory/Custom Game Object", false, 10)]
    static void CreateCustomGameObject(MenuCommand menuCommand) {
        GameObject go = new GameObject("Custom Game Object");
        GameObjectUtility.SetParentAndAlign(go, menuCommand.context as GameObject);
        Undo.RegisterCreatedObjectUndo(go, "Create " + go.name);
        Selection.activeGameObject = go;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值