EditorWindow 和MenuItem

來源:互聯網
上載者:User

標籤:

using UnityEngine;using System.Collections;using UnityEditor;public class ClipEventEditor : EditorWindow{    /// <summary>    /// MenuItem屬性允許你添加功能表項目到主菜單和檢視面板操作功能表    /// MenuItem屬性把任意靜態函數變成為一個功能表命令。僅靜態函數能使用這個MenuItem屬性。    /// 可以使用一下指定字元建立熱鍵:% (Windows上為ctrl, OS X上為cmd), # (shift), & (alt), _ (無修改鍵)。    /// 例如建立一個菜單熱鍵為shift-alt-g使用GameObject/Do Something #&g。    /// 建立一個菜單熱鍵g並沒有修改鍵(按鍵組合),使用GameObject/Do Something _g。    /// 熱鍵文本必須在前面加一個空白字元(GameObject/Do_g不會被解釋為熱鍵,而是GameObject/Do _g這樣,注意_g前面有空格)。    ///     /// 注意:這是一個編輯器類,如果想使用它你需要把它放到工程目錄下的Assets/Editor檔案夾下。    /// 編輯器類在UnityEditor命名空間下。所以當使用C#指令碼時,你需要在指令碼前面加上 "using UnityEditor"引用。    /// </summary>    [MenuItem("Tools/ClipEventEditor %1", false)]//快速鍵Ctrl+1    static void Show()    {        //static function GetWindow.<T> (utility : bool, title : string, focus : bool) : T        //返回螢幕上類型T的當前的第一個編輯器視窗。        //如果沒有,建立並顯示新的視窗並返回它的執行個體。        //utility設定為真,來建立一個浮動視窗;為假,建立一個標準視窗。        //title 如果GetWindow建立一個新的視窗,它將擷取這個標題。如果這個值為null,使用類名作為標題。        GetWindow<ClipEventEditor>(true, "編輯器");    }    public AnimationClip Clip;    public GameObject Obj;    void OnGUI()    {        GUILayout.Label("動畫事件編輯器");        //EditorGUILayout.ObjectField:製作一個物體欄位。可以指定物體無論是通過拖拽物體或通過物體拾取器選擇物體。        Clip = (AnimationClip)EditorGUILayout.ObjectField(Clip, typeof(AnimationClip), true);        Obj = (GameObject)EditorGUILayout.ObjectField(Obj, typeof(GameObject), true);        if (Clip)        {            var Events = AnimationUtility.GetAnimationEvents(Clip);            if (GUILayout.Button("顯示隱藏事件"))            {                for (int i = 0; i < Events.Length; i++)                {                    if (float.IsInfinity(Events[i].time))                    {                        Events[i].time = 0;                    }                }                //TODO ...儲存修改            }        }    }}

 

EditorWindow 和MenuItem

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.