Exemplo n.º 1
0
    //绘制窗口时调用
    void OnGUI()
    {
        EditorGUIUtility.labelWidth = 80f;
        EditorGUILayout.LabelField("所属图集", m_atlasName);
        EditorGUILayout.LabelField("前缀", m_prefix);

        //要设置成的图集的名字
        using (new AutoBeginHorizontal())
        {
            EditorGUILayout.PrefixLabel("选中的图片");
            using (AutoBeginScrollView a = new AutoBeginScrollView(selScroll, GUILayout.ExpandWidth(true), GUILayout.ExpandHeight(true)))
            {
                selScroll = a.Scroll;
                foreach (TextureImporter tex in m_texs)
                {
                    string path = AssetDatabase.GetAssetPath(tex);
                    if (string.IsNullOrEmpty(path))
                    {
                        continue;
                    }
                    EditorGUILayout.LabelField(path);
                }
            }
        }
        if (GUILayout.Button("设置", GUILayout.Height(50)))
        {
            Set();
        }
    }
Exemplo n.º 2
0
    //绘制窗口时调用
    void OnGUI()
    {
        EditorGUIUtility.labelWidth = 80f;
        //找到所有选中的图片
        using (new AutoBeginHorizontal())
        {
            m_atlasName = EditorGUILayout.TextField("图集名", m_atlasName);
            string[] ns = UnityEditor.Sprites.Packer.atlasNames;
            if (ns.Length != 0)
            {
                int i = Array.IndexOf(ns, m_atlasName);
                i = EditorGUILayout.Popup(i, ns, GUILayout.Width(80));
                if (i != -1 && ns[i] != m_atlasName)
                {
                    m_atlasName = ns[i];
                }
            }


            if (GUILayout.Button("设置", GUILayout.Width(50)))
            {
                Set();
            }
        }

        //是否改前缀
        bool isChangePrefix = EditorPrefs.GetInt("change_atlas_prefix") == 0;
        bool after          = EditorGUILayout.Toggle("重命名前缀", isChangePrefix);

        if (after != isChangePrefix)
        {
            isChangePrefix = after;
            EditorPrefs.SetInt("change_atlas_prefix", isChangePrefix ? 0 : 1);
        }

        //要设置成的图集的名字
        using (new AutoBeginHorizontal())
        {
            EditorGUILayout.PrefixLabel("选中的图片");
            using (AutoBeginScrollView a = new AutoBeginScrollView(selScroll, GUILayout.ExpandWidth(true), GUILayout.ExpandHeight(true)))
            {
                selScroll = a.Scroll;
                foreach (TextureImporter tex in m_texs)
                {
                    string path = AssetDatabase.GetAssetPath(tex);
                    if (string.IsNullOrEmpty(path))
                    {
                        continue;
                    }
                    EditorGUILayout.LabelField(path);
                }
            }
        }
    }
Exemplo n.º 3
0
    //绘制窗口时调用
    void OnGUI()
    {
        using (var scrollView = new AutoBeginScrollView(m_scrollPos))
        {
            m_scrollPos = scrollView.Scroll;

            if (m_canEdit)
            {
                m_message = EditorGUILayout.TextArea(m_message, EditorUtil.TextAreaWordWrap, GUILayout.ExpandWidth(true), GUILayout.ExpandHeight(true));
            }
            else
            {
                EditorGUILayout.LabelField(m_message, EditorUtil.LabelWordWrap, GUILayout.ExpandWidth(true), GUILayout.ExpandHeight(true));
            }
        }

        GUILayout.Space(5);

        if (m_onOk != null && m_onCancel != null)
        {
            using (new AutoBeginHorizontal())
            {
                if (GUILayout.Button(string.IsNullOrEmpty(m_okText) ? "确定" : m_okText, GUILayout.Height(24)))
                {
                    m_needCloseCallback = false;
                    Close();
                    m_onOk(m_message, m_context);
                }

                GUILayout.Space(5);

                if (GUILayout.Button(string.IsNullOrEmpty(m_cancelText) ? "取消" : m_cancelText, GUILayout.Height(24)))
                {
                    m_needCloseCallback = false;
                    Close();
                    m_onCancel(m_message, m_context);
                }
            }
        }
        else if (m_onOk != null)
        {
            if (GUILayout.Button(string.IsNullOrEmpty(m_okText) ? "确定" : m_okText, GUILayout.Height(24)))
            {
                m_needCloseCallback = false;
                Close();
                m_onOk(m_message, m_context);
            }
        }
    }
Exemplo n.º 4
0
        //布局timeline,取得所有位置
        void TimeLineLayout()
        {
            //时间轴
            using (new AutoBeginHorizontal())
            {
                GUILayout.Box("", EditorStyles.toolbar, GUILayout.ExpandWidth(true), GUILayout.Height(hTimeLine));
                if (Event.current.type == EventType.Repaint)
                {
                    RectTimeLine = GUILayoutUtility.GetLastRect();
                }
                GUILayout.Space(wRightScrollBar);
            }


            //某一时间对应的处理组的父节点区域
            using (new AutoBeginHorizontal())
            {
                GUILayout.Box("", "AnimationEventBackground", GUILayout.ExpandWidth(true), GUILayout.Height(hTimeLine));
                if (Event.current.type == EventType.Repaint)
                {
                    RectHandles = GUILayoutUtility.GetLastRect();
                }
                GUILayout.Space(wRightScrollBar);
            }


            //子节点区域
            using (AutoBeginScrollView a = new AutoBeginScrollView(ScrollHandles, false, true, GUILayout.ExpandWidth(true), GUILayout.Height(hMiddle - hTimeLine - hTimeLineHandle)))
            {
                ScrollHandles = a.Scroll;

                int maxCount = this.m_subHandles.MaxCount;
                for (int i = 0; i < maxCount; ++i)
                {
                    Color PreviousColor = GUI.color;
                    GUI.color = i % 2 == 0 ? Color.white * 0.3f : Color.white * 0.6f;
                    GUILayout.Box("", GUILayout.ExpandWidth(true), GUILayout.Height(hHandleRow));
                    GUI.color = PreviousColor;

                    //if (Event.current.type == EventType.Repaint)
                    //    uiSeq.RectHandles[i] = GUILayoutUtility.GetLastRect();
                }
            }
        }
Exemplo n.º 5
0
    void DrawTriggers()
    {
        CameraTriggerMgr   mgr   = CameraTriggerMgr.instance;
        CameraTriggerGroup group = mgr.CurGroup;

        using (AutoBeginScrollView a = new AutoBeginScrollView(m_scroll, GUILayout.ExpandWidth(true), GUILayout.ExpandHeight(false)))//, GUILayout.ExpandHeight(true)
        {
            m_scroll = a.Scroll;
            DrawCameraInfo(mgr.CurGroup.m_defaultInfo, "默认镜头", true, true);

            foreach (CameraTrigger t in group.Triggers)
            {
                if (DrawTrigger(t))
                {
                    group.RemoveTrigger(t);
                    return;
                }
            }
        }
    }
Exemplo n.º 6
0
        //绘制窗口时调用
        void OnGUI()
        {
            //标题栏
            using (new AutoBeginHorizontal())
            {
                if (GUILayout.Button("贴图名", EditorStyles.toolbarPopup))
                {
                    m_infos.SortEx((TextureInfo a, TextureInfo b) => a.tex.name.CompareTo(b.tex.name));
                }
                if (GUILayout.Button("大小", EditorStyles.toolbarPopup, GUILayout.Width(100)))
                {
                    m_infos.SortEx((TextureInfo a, TextureInfo b) => a.sizeMax.CompareTo(b.sizeMax) * -1);
                }
                if (GUILayout.Button("类型", EditorStyles.toolbarPopup, GUILayout.Width(100)))
                {
                    m_infos.SortEx((TextureInfo a, TextureInfo b) => a.texImporter.textureType.CompareTo(b.texImporter.textureType));
                }
                if (GUILayout.Button("格式", EditorStyles.toolbarPopup, GUILayout.Width(150)))
                {
                    m_infos.SortEx((TextureInfo a, TextureInfo b) => a.typeOrder.CompareTo(b.typeOrder));
                }
                if (GUILayout.Button("2的n次方", EditorStyles.toolbarPopup, GUILayout.Width(100)))
                {
                    m_infos.SortEx((TextureInfo a, TextureInfo b) =>
                    {
                        if (!a.IsPOT && b.IsPOT)
                        {
                            return(-1);
                        }
                        else if (a.IsPOT && !b.IsPOT)
                        {
                            return(1);
                        }
                        else
                        {
                            return(0);
                        }
                    });
                }



                if (GUILayout.Button("贴图", EditorStyles.toolbarPopup, GUILayout.Width(100)))
                {
                    m_infos.SortEx((TextureInfo a, TextureInfo b) =>
                    {
                        int sizeA = (int)(a.size.x * a.size.y);
                        int sizeB = (int)(b.size.x * b.size.y);
                        return(sizeA.CompareTo(sizeB) * 1);
                    });
                }

                using (new AutoBeginHorizontal(EditorStyles.toolbar, GUILayout.Width(100)))
                {
                    m_slider = (int)GUILayout.HorizontalSlider(m_slider, 15, 160, GUILayout.Width(100));
                }
            }

            //贴图列表
            using (AutoBeginScrollView s = new AutoBeginScrollView(m_scroll, GUILayout.ExpandHeight(true)))
            {
                m_scroll = s.Scroll;
                foreach (var info in m_infos)
                {
                    DrawInfo(info);
                }
            }

            //底部工具栏
            using (new AutoBeginVertical(EditorStyles.helpBox))
            {
                m_showUncompress = EditorGUILayout.Toggle("显示不压缩(uncompress后缀)", m_showUncompress);
                using (new AutoBeginHorizontal())
                {
                    using (new AutoBeginVertical(EditorStyles.helpBox, GUILayout.ExpandHeight(true)))
                    {
                        foreach (var a in m_sizeIdx)
                        {
                            m_sizeToggle[a.Key] = EditorGUILayout.Toggle(string.Format("{0}贴图{1}张", a.Key, a.Value), m_sizeToggle[a.Key]);
                        }
                        EditorGUILayout.LabelField(string.Format("总共{0}张", m_infos.Count));
                    }

                    using (new AutoBeginVertical(EditorStyles.helpBox, GUILayout.ExpandHeight(true)))
                    {
                        foreach (var a in m_textureTypeToggle)
                        {
                            m_textureTypeToggle[a.Key] = EditorGUILayout.Toggle(((TextureImporterType)a.Key).ToString(), a.Value);
                        }
                    }

                    using (new AutoBeginVertical(EditorStyles.helpBox, GUILayout.ExpandHeight(true)))
                    {
                        foreach (var a in m_typeToggle)
                        {
                            m_typeToggle[a.Key] = EditorGUILayout.Toggle(((TextureImporterFormat)a.Key).ToString(), a.Value);
                        }
                    }

                    using (new AutoBeginVertical(EditorStyles.helpBox, GUILayout.ExpandHeight(true)))
                    {
                        using (new AutoBeginHorizontal())
                        {
                            m_texFindRef = (Texture)EditorGUILayout.ObjectField(m_texFindRef, typeof(Texture), false);
                            if (GUILayout.Button("查找引用", GUILayout.Width(60)))
                            {
                                FindTextureRef();
                            }
                        }

                        foreach (var m in m_refMats.Values)
                        {
                            DrawRef(m);
                        }
                    }
                }
            }
        }
Exemplo n.º 7
0
    //下边子处理详细页面
    void DrawBottomSubHandles()
    {
        Handle remove = null;

        using (AutoBeginScrollView a = new AutoBeginScrollView(ScrollBottom, false, false, GUILayout.ExpandWidth(true), GUILayout.ExpandHeight(true)))
        {
            ScrollBottom = a.Scroll;
            using (new AutoBeginHorizontal(GUILayout.ExpandWidth(true), GUILayout.ExpandHeight(true)))
            {
                int   idx               = 0;
                float time              = -1;
                int   idxTime           = -1;    //第几个时间点,包含不可见的
                int   row               = 0;     //第几行,可见的
                int   col               = 0;     //第几列,可见的
                bool  isDurationInvalid = false; //是不是即时的
                Color PreviousColor     = GUI.backgroundColor;
                foreach (var h in this.m_subHandles.m_handles)
                {
                    //画处理组,大菱形
                    if (!Mathf.Approximately(h.m_delay, time))
                    {
                        idx = 0;
                        ++idxTime;
                        time = h.m_delay;
                        row  = 0;
                    }
                    else
                    {
                        ++idx;
                    }

                    if (h.m_seqIsShow == false)
                    {
                        continue;
                    }

                    //新一列
                    if (row == 0 && h.m_seqIsShow)
                    {
                        if (col != 0)
                        {
                            GUILayout.EndVertical();
                            GUILayout.EndScrollView();
                        }

                        GUI.backgroundColor = col % 2 == 0 ? Color.white :new Color(0.90f, 0.90f, 1f);
                        ScrolBottomCol[col] = GUILayout.BeginScrollView(ScrolBottomCol[col], GUILayout.Width(250), GUILayout.ExpandHeight(true));
                        GUILayout.BeginVertical(EditorStyles.miniButtonMid, GUILayout.ExpandWidth(true), GUILayout.ExpandHeight(true));

                        //这一列是不是即时的
                        GUILayout.BeginHorizontal(GUILayout.ExpandWidth(true));
                        float old2 = UnityEditor.EditorGUIUtility.labelWidth;
                        UnityEditor.EditorGUIUtility.labelWidth = 50;
                        isDurationInvalid = EditorGUILayout.Toggle("即时", h.m_isDurationInvalid, GUILayout.ExpandWidth(true));
                        if (isDurationInvalid != h.m_isDurationInvalid)
                        {
                            this.m_subHandles.SetDurationInvalid(h.m_delay, isDurationInvalid);
                        }
                        UnityEditor.EditorGUIUtility.labelWidth = old2;
                        GUIStyle style = new GUIStyle();
                        style.richText = true;
                        GUILayout.Label(string.Format("<color=white>索引:<size=14><b><color=maroon>{0}</color></b></size> {1:0.##}</color>", idxTime, h.m_delay), style, GUILayout.Width(60));
                        GUILayout.EndHorizontal();
                        ++col;
                    }


                    GUI.backgroundColor = PreviousColor;
                    GUILayout.BeginVertical(EditorStyles.objectFieldThumb, GUILayout.ExpandWidth(true));
                    GUILayout.Space(5);
                    if (!isDurationInvalid)
                    {
                        //画标题
                        GUILayout.BeginHorizontal();
                        if (GUILayout.Button("隐藏", EditorStyles.miniButtonLeft, GUILayout.Width(50), GUILayout.Height(20)))
                        {
                            h.m_seqIsShow = false;
                        }
                        GUIStyle style = new GUIStyle(EditorStyles.miniButtonMid);
                        style.richText = true;
                        GUILayout.Label(string.Format("<size=14><color=white>{0}{1}</color></size>", h.CurTypeName, h.m_id), style, GUILayout.ExpandWidth(true), GUILayout.Height(20));
                        if (GUILayout.Button("删除", EditorStyles.miniButtonRight, GUILayout.Width(50), GUILayout.Height(20)))
                        {
                            remove = h;
                        }
                        GUILayout.EndHorizontal();

                        //画内容
                        float old = UnityEditor.EditorGUIUtility.labelWidth;
                        UnityEditor.EditorGUIUtility.labelWidth = 50;
                        if (h.CurHandle.OnDrawGo(m_comp, h, "对象"))
                        {
                            h.CurHandle.OnReset(h, false, true);
                        }
                        h.CurHandle.OnDrawMid(m_comp, h, SimpleHandleEditor.OnOpenWnd, true);
                        UnityEditor.EditorGUIUtility.labelWidth = old;
                    }
                    else
                    {
                        //即时处理的话显示得简单点
                        float old = UnityEditor.EditorGUIUtility.labelWidth;
                        UnityEditor.EditorGUIUtility.labelWidth = 50;
                        GUILayout.BeginHorizontal();
                        if (h.CurHandle.OnDrawGo(m_comp, h, h.CurTypeName))
                        {
                            h.CurHandle.OnReset(h, false, true);
                        }
                        if (GUILayout.Button("删除", GUILayout.Width(50), GUILayout.Height(20)))
                        {
                            remove = h;
                        }
                        GUILayout.EndHorizontal();
                        h.CurHandle.OnDrawMin(m_comp, h, SimpleHandleEditor.OnOpenWnd, true);
                        UnityEditor.EditorGUIUtility.labelWidth = old;
                    }
                    GUILayout.Space(5);
                    GUILayout.EndVertical();


                    ++row;
                }

                if (col != 0)
                {
                    GUILayout.EndVertical();
                    GUILayout.EndScrollView();
                }
                GUI.backgroundColor = PreviousColor;
            }
        }

        //删除
        if (remove != null)
        {
            m_subHandles.RemoveSubHandle(this.m_comp, this.m_handle, remove);
        }
    }
Exemplo n.º 8
0
    //绘制窗口时调用
    void OnGUI()
    {
        using (AutoBeginScrollView a = new AutoBeginScrollView(pos))
        {
            pos = a.Scroll;
            GUILayout.Label("boldLabel", EditorStyles.boldLabel);
            GUILayout.Label("centeredGreyMiniLabel", EditorStyles.centeredGreyMiniLabel);
            GUILayout.Label("colorField", EditorStyles.colorField);
            GUILayout.Label("foldout", EditorStyles.foldout);
            GUILayout.Label("foldoutPreDrop", EditorStyles.foldoutPreDrop);
            GUILayout.Label("helpBox", EditorStyles.helpBox);
            GUILayout.Label("inspectorDefaultMargins", EditorStyles.inspectorDefaultMargins);
            GUILayout.Label("inspectorFullWidthMargins", EditorStyles.inspectorFullWidthMargins);
            GUILayout.Label("label", EditorStyles.label);
            GUILayout.Label("largeLabel", EditorStyles.largeLabel);
            GUILayout.Label("layerMaskField", EditorStyles.layerMaskField);
            GUILayout.Label("miniBoldLabel", EditorStyles.miniBoldLabel);
            GUILayout.Label("miniButton", EditorStyles.miniButton);
            GUILayout.Label("miniButtonLeft", EditorStyles.miniButtonLeft);
            GUILayout.Label("miniButtonMid", EditorStyles.miniButtonMid);
            GUILayout.Label("miniButtonRight", EditorStyles.miniButtonRight);
            GUILayout.Label("miniLabel", EditorStyles.miniLabel);
            GUILayout.Label("miniTextField", EditorStyles.miniTextField);
            GUILayout.Label("numberField", EditorStyles.numberField);
            GUILayout.Label("objectField", EditorStyles.objectField);
            GUILayout.Label("objectFieldMiniThumb", EditorStyles.objectFieldMiniThumb);
            GUILayout.Label("objectFieldThumb", EditorStyles.objectFieldThumb);
            GUILayout.Label("popup", EditorStyles.popup);

            GUILayout.Label("radioButton", EditorStyles.radioButton);
            GUILayout.Label("textArea", EditorStyles.textArea);
            GUILayout.Label("textField", EditorStyles.textField);
            GUILayout.Label("toggle", EditorStyles.toggle);
            GUILayout.Label("toggleGroup", EditorStyles.toggleGroup);
            GUILayout.Label("toolbar", EditorStyles.toolbar);
            GUILayout.Label("toolbarButton", EditorStyles.toolbarButton);
            GUILayout.Label("toolbarDropDown", EditorStyles.toolbarDropDown);
            GUILayout.Label("toolbarPopup", EditorStyles.toolbarPopup);
            GUILayout.Label("toolbarTextField", EditorStyles.toolbarTextField);
            GUILayout.Label("whiteBoldLabel", EditorStyles.whiteBoldLabel);
            GUILayout.Label("whiteLabel", EditorStyles.whiteLabel);
            GUILayout.Label("whiteLargeLabel", EditorStyles.whiteLargeLabel);
            GUILayout.Label("whiteMiniLabel", EditorStyles.whiteMiniLabel);
            GUILayout.Label("wordWrappedLabel", EditorStyles.wordWrappedLabel);
            GUILayout.Label("wordWrappedMiniLabel", EditorStyles.wordWrappedMiniLabel);
            GUILayout.Label("AnimationEventBackground", "AnimationEventBackground");
            GUILayout.Label("Dopesheetkeyframe", "Dopesheetkeyframe");



            EditorGUILayoutEx.FadeArea fadeArea = EditorGUILayoutEx.instance.BeginFadeArea(bOpenArea, "区域块", "area", EditorStyleEx.PixelBoxStyle, EditorStyleEx.TopBoxHeaderStyle);
            bOpenArea = fadeArea.open;
            if (fadeArea.Show())
            {
                EditorGUILayoutEx.FadeArea topFadeArea = EditorGUILayoutEx.instance.BeginFadeArea(bOpenArea3, "", "areaid", EditorStyleEx.GraphBoxStyle);
                bOpenArea3 = topFadeArea.open;
                if (topFadeArea.Show())
                {
                    EditorGUILayout.HelpBox("help box", MessageType.Info);
                }
                EditorGUILayoutEx.instance.EndFadeArea();
            }
            EditorGUILayoutEx.instance.EndFadeArea();

            EditorGUILayout.TextField("", "可编辑区", EditorStyleEx.BoxHeaderStyle, GUILayout.ExpandWidth(false), GUILayout.ExpandHeight(false));

            using (new AutoBeginHorizontal())
            {
                GUILayout.Button("Draw", EditorStyleEx.GraphGizmoButtonStyle);

                if (GUILayout.Toggle(true, "Info", EditorStyleEx.GraphInfoButtonStyle))
                {
                }

                GUILayout.Button("Delete", EditorStyleEx.GraphDeleteButtonStyle);

                GUILayout.Button("DownArrowEdiStyle", EditorStyleEx.DownArrowStyle);
                GUILayout.Button("UpArrowEdiStyle", EditorStyleEx.UpArrowStyle);
            }
            GUILayout.Button("buttonEdiStyle", EditorStyleEx.ButtonStyle);

            GUILayout.Toggle(true, "toggleEdiStyle", EditorStyleEx.ToggleStyle);

            GUILayout.Label("labelEdiStyle", EditorStyleEx.LabelStyle);

            GUILayout.TextField("textfieldEdiStyle", EditorStyleEx.TextfieldStyle);

            GUILayout.TextArea("textareaEdiStyle", EditorStyleEx.TextareaStyle);


            GUILayout.Space(20);


            EditorGUILayoutEx.FadeArea fadeArea2 = EditorGUILayoutEx.instance.BeginFadeArea(bOpenArea2, "区域块", "area2", EditorStyleEx.PixelBoxStyle);
            bOpenArea2 = fadeArea2.open;
            if (fadeArea2.Show())
            {
                using (new AutoBeginHorizontal())
                {
                    EditorGUILayout.HelpBox("help box", MessageType.Info);
                }
            }

            GUILayout.Button("CloseButtonEdiStyle", EditorStyleEx.CloseButtonStyle);

            GUILayout.Button("SmallResetEdiStyle", EditorStyleEx.SmallResetStyle);
            GUILayout.Button("GizmoButtonEdiStyle", EditorStyleEx.GizmoButtonStyle);

            GUILayout.Label("thinHelpBox", EditorStyleEx.ThinHelpBox, GUILayout.Height(15));

            EditorGUILayoutEx.instance.EndFadeArea();

            GUILayout.Space(30);
        }

        GUILayout.Space(20);
    }