unity_editor

Search Key

Unity Editor Extending the Editor

增加Command和快捷键

MenuItem("GameObject/Add Aliase %G", priority =20)]
public static void AddAliase() { ... }

Menu - Command - Shortcut

菜单

菜单的validate
[MenuItem("GameObject/Add Aliase", validate=true)]
static bool ValidationForAddAliase() { ... }

菜单的分类

{
    Assets/
    CONTEXT/ComponentName
    GameObject/
    ...
}

GameObject的特殊点。

  1. 一定要设置MenuItem.priority,且范围在[0,50)。否则不会显示

快捷键

% - CTRL

- Shift

_ - 单键
LEFT/RIGHT/UP/DOWN - 箭头键
F1 F2 -
HOME, END, PGUP, PGDN -

MenuItem("GameObject/Add Aliase %G")]
一定要是空格precede

命令对应的函数原型

static void PrintObjectName(MenuCommand command)
{
    Debug.Log(command.context)
}
获取选中的GameObject的方法

  1. MenuCommand
  2. Selection.activeObject

多选
Selection.transforms
Selection.GetTransforms()

扩展Inspector面板

代码示例:

using UnityEditor;

[CustomEditor(typeof(Camera))]
public class SetLightParameters : Editor {
    private Camera camera;

    public override void OnInspectorGUI()
    {
        base.OnInspectorGUI();
        camera = (Camera)target;

        if (GUILayout.Button("SetLightParameters"))
        {
            camera.nearClipPlane = 1f;
            camera.farClipPlane = 500f;
            camera.fieldOfView = 40;
            EditorUtility.SetDirty(target);
        }
    }
}