天天看點

orange_17.09.18學習unity-菜單欄MenuItem

加油!!!

17年9月18日

using UnityEngine;
using UnityEditor;

public class MyTest : MonoBehaviour {
    /// <summary>
    /// 在菜單欄下添加一個新的菜單項
    /// </summary>
    [MenuItem ("Orange/orange_chenTest")]
    static void myTest() {
        GameObject go = new GameObject("Orange");
        Debug.Log("Hello World!");
    }
    / <summary>
    / 在GameObject下添加一個新的菜單項TestGameObject
    / </summary>
    [MenuItem("GameObject/TestGameObject")]
    static void TestGameObject()
    {
        GameObject go = new GameObject("TestGameObject");
    }
    / <summary>
    / 我們選中的時候才可以啟用它,false是不選中也可以啟用,可以添加優先級1為相同類型的最優先
    / </summary>
    / <returns></returns>
    [MenuItem("GameObject/TestGameObject", true)]//MenuItem("GameObject/TestGameObject", false, 1)
    static bool ValidateTestGameObject()
    {
        return Selection.activeTransform != null;
    }

    /// <summary>
    /// 建立Test Command選中建立子集Test Command不選中正常建立Test Command
    /// </summary>
    /// <param name="m_nCommand"></param>
    [MenuItem ("GameObject/TestOrange/TestCommand", false, 1)]
    static void CreateTestCommand(MenuCommand m_nCommand)
    {
        m_nCommand.context = Selection.activeObject;
        GameObject go = new GameObject("Test Command");
        GameObjectUtility.SetParentAndAlign(go, (GameObject)m_nCommand.context);
        Undo.RegisterCreatedObjectUndo(go, "Create " + go.name);//撤銷  添加這句可以在編輯器裡撤銷不添加則不可以,和Destroy有些像
        Selection.activeObject = go;
        
    }
    
}