From d07e14add74e017b52ab2371efeea1aa4ea10ced Mon Sep 17 00:00:00 2001 From: chai Date: Sat, 8 May 2021 23:15:13 +0800 Subject: +init --- .../Editor/GridLayoutGroupExtEditor.cs | 92 ++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 Assets/UI_Extension/Editor/GridLayoutGroupExtEditor.cs (limited to 'Assets/UI_Extension/Editor/GridLayoutGroupExtEditor.cs') diff --git a/Assets/UI_Extension/Editor/GridLayoutGroupExtEditor.cs b/Assets/UI_Extension/Editor/GridLayoutGroupExtEditor.cs new file mode 100644 index 0000000..5feb223 --- /dev/null +++ b/Assets/UI_Extension/Editor/GridLayoutGroupExtEditor.cs @@ -0,0 +1,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); + } + } + + + + } + +} -- cgit v1.1-26-g67d0