diff options
Diffstat (limited to 'Assets/UI_Extension/Editor/GridLayoutGroupExtEditor.cs')
-rw-r--r-- | Assets/UI_Extension/Editor/GridLayoutGroupExtEditor.cs | 92 |
1 files changed, 92 insertions, 0 deletions
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);
+ }
+ }
+
+
+
+ }
+
+}
|