summaryrefslogtreecommitdiff
path: root/Assets/UI_Extension/Editor/GridLayoutGroupExtEditor.cs
blob: 5feb223987962236ef64a834957e6941abd5e56e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using UnityEngine.UI;

namespace UIExt
{

    [CustomEditor(typeof(GridLayoutGroupExt), false)]
    public class GridLayoutGroupExtEdtor : Editor
    {
        GridLayoutGroupExt layout;

        SerializedProperty m_Padding;
        SerializedProperty m_ScrollMode;
        SerializedProperty m_MovementType;

        static Color s_LightGray = new Color(0.7f, 0.7f, 0.7f, 1);

        int m_ItemCount; // 测试
        float m_HorizontalScrollAmount;
        float m_VerticalScrollAmount;

        protected virtual void OnEnable()
        {
            m_ItemCount = 0;
            m_Padding = serializedObject.FindProperty("m_Padding");
            m_ScrollMode = serializedObject.FindProperty("m_ScrollMode");
            m_MovementType = serializedObject.FindProperty("m_MovementType");
        }

        public override void OnInspectorGUI()
        {
            GUI.changed = false;
            layout = this.target as GridLayoutGroupExt;
            if (layout == null)
                return;
            GUILayout.Space(10f);
            EditorGUILayout.BeginVertical();

            layout.scrollRect = EditorGUILayout.ObjectField("Scroll Rect", layout.scrollRect, typeof(ScrollRect), true) as ScrollRect;
            layout.content = EditorGUILayout.ObjectField("Content", layout.content, typeof(RectTransform), true) as RectTransform;
            layout.itemTemplate = EditorGUILayout.ObjectField("Item Template", layout.itemTemplate, typeof(LayoutItem), true) as LayoutItem;

            layout.cellSize = EditorGUILayout.Vector2IntField("Cell Size", layout.cellSize);
            layout.spacing  = EditorGUILayout.Vector2IntField("Spacing", layout.spacing);
            EditorGUILayout.PropertyField(m_Padding, true);

            layout.rowCount = EditorGUILayout.IntField("Row Count", layout.rowCount);
            layout.columCount = EditorGUILayout.IntField("Colum Count", layout.columCount);

            EditorGUILayout.PropertyField(m_ScrollMode, true);
            EditorGUILayout.PropertyField(m_MovementType, true);

            GUILayout.Space(5f);

            float y = EditorGUILayout.GetControlRect().y;
            float x = EditorGUILayout.GetControlRect().x;
            float w = EditorGUILayout.GetControlRect().width;
            EditorGUI.DrawRect(new Rect(x, y, w, 95), s_LightGray);
            GUILayout.Space(-50);

            var centeredStyle = GUI.skin.GetStyle("Label");
            centeredStyle.alignment = TextAnchor.UpperCenter;
            GUILayout.Label("测试", centeredStyle);
            Rect rect = EditorGUILayout.GetControlRect();
            GUIUtils.DrawHorizontalline(Color.gray, new Vector2(rect.x, rect.y), rect.width);
            EditorGUILayout.BeginHorizontal();
            m_ItemCount = EditorGUILayout.IntSlider("测试生成Item数量", m_ItemCount, 0, 50);
            if(GUILayout.Button("生成", GUILayout.Width(40)))
            {

            }
            EditorGUILayout.EndHorizontal();

            m_HorizontalScrollAmount = EditorGUILayout.Slider("水平滑动值", m_HorizontalScrollAmount, 0, 1000);
            m_VerticalScrollAmount = EditorGUILayout.Slider("垂直滑动值", m_VerticalScrollAmount, 0, 1000);

            GUILayout.Space(20f);
            EditorGUILayout.EndVertical();
            if(GUI.changed)
            {
                EditorUtility.SetDirty(layout);
            }
        }



    }

}