zoukankan      html  css  js  c++  java
  • EditorWindow 和MenuItem

    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 ...保存修改
                }
            }
        }
    
    }

  • 相关阅读:
    EZOJ #202
    EZOJ #201
    p5156 [USACO18DEC]Sort It Out
    p4363 [九省联考2018]一双木棋chess
    p2150 [NOI2015]寿司晚宴
    p5155 [USACO18DEC]Balance Beam
    p2414 [NOI2011]阿狸的打字机
    实验室断网的解决方案
    人需要看到未来
    门德尔松--罗辑思维
  • 原文地址:https://www.cnblogs.com/martianzone/p/4868116.html
Copyright © 2011-2022 走看看