From 1e5edbb1c7ba1d679f56bab61689e980c745d34e Mon Sep 17 00:00:00 2001
From: lcy <1459594991@qq.com>
Date: 星期五, 23 五月 2025 11:33:19 +0800
Subject: [PATCH] 59 子 【常规】邮件系统 / 【常规】邮件系统-客户端 摘取部分ui组件

---
 Assets/Editor/Tool/PrefabCreateTool.cs.meta         |   12 
 Assets/UIComponent/FunctionButtonEditor.cs          |   40 +++
 Assets/UIComponent/PolylineImageEditor.cs.meta      |   12 
 Assets/UIComponent/FlipScrollEditor.cs.meta         |   12 
 Assets/UIComponent/ToggleExEditor.cs.meta           |   12 
 Assets/UIComponent/RichTextEditor.cs.meta           |   12 
 Assets/UIComponent/TextExEditor.cs.meta             |   12 
 Assets/UIComponent.meta                             |    8 
 Assets/UIComponent/ImageExEditor.cs                 |   33 ++
 Assets/UIComponent/LayoutElementClampEditor.cs.meta |   12 
 Assets/UIComponent/LongPressButtonEditor.cs.meta    |   12 
 Assets/UIComponent/LayoutElementClampEditor.cs      |   33 ++
 Assets/UIComponent/RichTextEditor.cs                |   73 +++++
 Assets/UIComponent/FunctionButtonEditor.cs.meta     |   12 
 Assets/UIComponent/CustomImageEditor.cs.meta        |   12 
 Assets/UIComponent/ImageExEditor.cs.meta            |   12 
 Assets/Editor/Tool.meta                             |    8 
 Assets/UIComponent/ButtonExEditor.cs.meta           |   12 
 Assets/UIComponent/LongPressButtonEditor.cs         |   16 +
 Assets/UIComponent/ButtonExEditor.cs                |   26 ++
 Assets/UIComponent/TextExEditor.cs                  |   18 +
 Assets/UIComponent/FlipScrollEditor.cs              |   62 ++++
 Assets/Editor/Tool/PrefabCreateTool.cs              |  154 +++++++++++
 Assets/UIComponent/PolylineImageEditor.cs           |   43 +++
 Assets/UIComponent/ToggleExEditor.cs                |   27 ++
 Assets/UIComponent/CustomImageEditor.cs             |   44 +++
 26 files changed, 729 insertions(+), 0 deletions(-)

diff --git a/Assets/Editor/Tool.meta b/Assets/Editor/Tool.meta
new file mode 100644
index 0000000..4611b51
--- /dev/null
+++ b/Assets/Editor/Tool.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 22b3d4629b849904ca6614d8e5b666f5
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Editor/Tool/PrefabCreateTool.cs b/Assets/Editor/Tool/PrefabCreateTool.cs
new file mode 100644
index 0000000..d5178fc
--- /dev/null
+++ b/Assets/Editor/Tool/PrefabCreateTool.cs
@@ -0,0 +1,154 @@
+锘�//--------------------------------------------------------
+//    [Author]:           绗簩涓栫晫
+//    [  Date ]:           Tuesday, October 31, 2017
+//--------------------------------------------------------
+using UnityEngine;
+using UnityEditor;
+using System.Collections;
+using UnityEngine.UI;
+using vnxbqy.UI;
+
+
+public class PrefabCreateTool
+{
+    // [MenuItem("GameObject/UI/UIRoot")]
+    // public static UIRoot CreateUIRoot()
+    // {
+    //     var uiroot = GameObject.FindObjectOfType<UIRoot>();
+    //     if (uiroot == null)
+    //     {
+    //         var prefab = BuiltInLoader.LoadPrefab("UIRoot");
+    //         var root = GameObject.Instantiate(prefab, Vector3.zero, Quaternion.identity);
+    //         root.name = "UIRoot";
+    //         uiroot = root.GetComponent<UIRoot>();
+    //     }
+    //     return uiroot;
+    // }
+
+    public static void SetParent(GameObject instance, Transform parent = null)
+    {
+        if (instance == null)
+            return;
+        // var uiroot = CreateUIRoot();
+        if (parent == null)
+            if (Selection.transforms != null && Selection.transforms.Length > 0)
+            {
+                parent = Selection.transforms[0];
+            }
+        // else
+        // {
+        //     parent = uiroot.normalCanvas.transform;
+        // }
+        instance.transform.SetParentEx(parent, Vector3.zero, Quaternion.identity, Vector3.one);
+        // PrefabUtility.DisconnectPrefabInstance(instance);
+        Selection.activeGameObject = instance;
+    }
+
+    public static GameObject LoadUIPattern(string name)
+    {
+        return AssetDatabase.LoadAssetAtPath<GameObject>(string.Format("Assets/Editor/UIPattern/{0}.prefab", name));
+    }
+
+    [MenuItem("GameObject/UI/FunctionButton")]
+    public static void CreateFunctionButton()
+    {
+        var instance = UIUtility.CreateWidget("FunctionButtonPattern", "FunctionButton");
+        SetParent(instance);
+    }
+
+    [MenuItem("GameObject/UI/GeneralWin_1")]
+    public static void CreateWindowPattern1()
+    {
+        var prefab = LoadUIPattern("GeneralWin");
+        var instance = GameObject.Instantiate(prefab) as GameObject;
+        instance.name = "GeneralWin";
+        SetParent(instance);
+    }
+
+    [MenuItem("GameObject/UI/RewardGroup")]
+    public static void CreateRewardGroup()
+    {
+        var prefab = LoadUIPattern("Container_Rewards");
+        var instance = GameObject.Instantiate(prefab) as GameObject;
+        instance.name = "Container_Rewards";
+        SetParent(instance);
+    }
+
+    [MenuItem("GameObject/UI/鑷�夊晢鍝�")]
+    public static void CreateCommonItemCell()
+    {
+        var prefab = LoadUIPattern("CustomizedItemCell");
+        var instance = GameObject.Instantiate(prefab) as GameObject;
+        instance.name = "CustomizedItemCell";
+        SetParent(instance);
+    }
+    [MenuItem("GameObject/UI/鐗规晥")]
+    public static void CreateUIEffect()
+    {
+        var instance = new GameObject("UIEffect");
+        instance.AddComponent<UIEffect>();
+        instance.AddComponent<RectTransform>();
+        SetParent(instance);
+    }
+
+    [MenuItem("GameObject/UI/ItemCell")]
+    public static void CreateItemCell()
+    {
+        var button = UIUtility.CreateWidget("ItemCell", "ItemCell");
+        SetParent(button);
+    }
+
+    [MenuItem("GameObject/UI/SortTable")]
+    public static void CreateSortTable()
+    {
+        var prefab = LoadUIPattern("SortTable");
+        var instance = GameObject.Instantiate(prefab) as GameObject;
+        instance.name = "SortTable";
+        SetParent(instance);
+    }
+
+    [MenuItem("GameObject/UI/TextEx")]
+    public static void CreateTextEx()
+    {
+        var instance = new GameObject("TextEx");
+        instance.AddComponent<TextEx>();
+        SetParent(instance);
+    }
+
+    [MenuItem("GameObject/UI/ImageEx")]
+    public static void CreateImageEx()
+    {
+        var instance = new GameObject("ImageEx");
+        instance.AddComponent<ImageEx>();
+        SetParent(instance);
+    }
+
+    [MenuItem("GameObject/UI/閫氱敤鎸夐挳")]
+    public static void CreateButtonEx()
+    {
+        var button = UIUtility.CreateWidget("CommonButton", "CommonButton");
+        SetParent(button);
+    }
+
+    [MenuItem("GameObject/UI/绾㈢偣")]
+    public static void CreateRedPoint()
+    {
+        var button = UIUtility.CreateWidget("RedPoint", "RedPoint");
+        SetParent(button);
+    }
+
+    [MenuItem("GameObject/UI/SecondFrameLoad")]
+    public static void CreateSecondFrameLoad()
+    {
+        var prefab = LoadUIPattern("SecondFrameLoad");
+        var instance = GameObject.Instantiate(prefab) as GameObject;
+        instance.name = "SecondFrameLoad";
+        SetParent(instance);
+    }
+
+
+}
+
+
+
+
diff --git a/Assets/Editor/Tool/PrefabCreateTool.cs.meta b/Assets/Editor/Tool/PrefabCreateTool.cs.meta
new file mode 100644
index 0000000..4476212
--- /dev/null
+++ b/Assets/Editor/Tool/PrefabCreateTool.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 0cdd096cb0b9e234397d77c608832ece
+timeCreated: 1509433613
+licenseType: Pro
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/UIComponent.meta b/Assets/UIComponent.meta
new file mode 100644
index 0000000..286602e
--- /dev/null
+++ b/Assets/UIComponent.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 5c419b9af4c2e854286b46142fcff5c2
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/UIComponent/ButtonExEditor.cs b/Assets/UIComponent/ButtonExEditor.cs
new file mode 100644
index 0000000..ddaf8e8
--- /dev/null
+++ b/Assets/UIComponent/ButtonExEditor.cs
@@ -0,0 +1,26 @@
+锘縰sing UnityEditor;
+
+[CustomEditor(typeof(ButtonEx),true),CanEditMultipleObjects]
+public class ButtonExEditor:UnityEditor.UI.ButtonEditor {
+
+    public override void OnInspectorGUI() {
+        base.OnInspectorGUI();
+        EditorGUILayout.Space();
+        ButtonEx button = target as ButtonEx;
+        button.interval = EditorGUILayout.FloatField("鐐瑰嚮闂撮殧",button.interval);
+        button.customPositiveSound = EditorGUILayout.Toggle("鑷畾涔夌Н鏋侀煶鏁�",button.customPositiveSound);
+        if(button.customPositiveSound) {
+            EditorGUI.indentLevel += 1;
+            button.positiveSound = EditorGUILayout.IntField("绉瀬闊虫晥",button.positiveSound);
+            EditorGUI.indentLevel -= 1;
+        }
+
+        button.customNegativeSound = EditorGUILayout.Toggle("鑷畾涔夋秷鏋侀煶鏁�",button.customNegativeSound);
+        if(button.customNegativeSound) {
+            EditorGUI.indentLevel += 1;
+            button.negativeSound = EditorGUILayout.IntField("娑堟瀬闊虫晥",button.negativeSound);
+            EditorGUI.indentLevel -= 1;
+        }
+    }
+
+}
diff --git a/Assets/UIComponent/ButtonExEditor.cs.meta b/Assets/UIComponent/ButtonExEditor.cs.meta
new file mode 100644
index 0000000..f14e792
--- /dev/null
+++ b/Assets/UIComponent/ButtonExEditor.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: b3cbe0a5a2e517e46acf1d7ddbfeb305
+timeCreated: 1499236495
+licenseType: Free
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/UIComponent/CustomImageEditor.cs b/Assets/UIComponent/CustomImageEditor.cs
new file mode 100644
index 0000000..29b3d84
--- /dev/null
+++ b/Assets/UIComponent/CustomImageEditor.cs
@@ -0,0 +1,44 @@
+锘�//--------------------------------------------------------
+//    [Author]:           绗簩涓栫晫
+//    [  Date ]:           Monday, August 14, 2017
+//--------------------------------------------------------
+using UnityEngine;
+using System.Collections;
+using UnityEditor;
+using System;
+
+namespace vnxbqy.UI {
+
+    [CustomEditor(typeof(CustomImage)), CanEditMultipleObjects]
+    public class CustomImageEidtor:Editor {
+
+        protected virtual void OnSceneGUI() {
+            var customImage = (CustomImage)this.target;
+            if(customImage.points != null) {
+                EditorGUI.BeginChangeCheck();
+                for(var i = 0;i < customImage.points.Length;i++) {
+                    var wh = customImage.points[i];
+                    var worldposition = customImage.transform.TransformPoint(wh);
+                    var handlePosition = Handles.PositionHandle(worldposition,Quaternion.identity);
+                    customImage.points[i] = customImage.transform.InverseTransformPoint(handlePosition);
+                }
+
+                if(EditorGUI.EndChangeCheck()) {
+                    customImage.SetVerticesDirty();
+                }
+
+                EditorUtility.SetDirty(customImage);
+            }
+
+        }
+
+
+    }
+
+}
+
+
+
+
+
+
diff --git a/Assets/UIComponent/CustomImageEditor.cs.meta b/Assets/UIComponent/CustomImageEditor.cs.meta
new file mode 100644
index 0000000..a9bc00c
--- /dev/null
+++ b/Assets/UIComponent/CustomImageEditor.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: c2cacda07f0983841891530d7fe52173
+timeCreated: 1502677702
+licenseType: Pro
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/UIComponent/FlipScrollEditor.cs b/Assets/UIComponent/FlipScrollEditor.cs
new file mode 100644
index 0000000..38b2856
--- /dev/null
+++ b/Assets/UIComponent/FlipScrollEditor.cs
@@ -0,0 +1,62 @@
+锘�//--------------------------------------------------------
+//    [Author]:           绗簩涓栫晫
+//    [  Date ]:           Monday, September 11, 2017
+//--------------------------------------------------------
+using UnityEngine;
+using System.Collections;
+using UnityEngine.UI;
+using UnityEditor;
+namespace vnxbqy.UI
+{
+    [CustomEditor(typeof(FlipScroll))]
+    [CanEditMultipleObjects]
+    public class FlipScrollEditor : UnityEditor.UI.GraphicEditor
+    {
+        private FlipScroll flipScroll;
+
+        protected override void OnEnable()
+        {
+            base.OnEnable();
+            if (target != null) {
+                flipScroll = target as FlipScroll;
+            }
+        }
+
+        public override void OnInspectorGUI()
+        {
+            base.OnInspectorGUI();
+            EditorGUILayout.BeginHorizontal();
+            flipScroll.FlipType = (FlipScroll.FlipDirEnum)EditorGUILayout.EnumPopup("Flip Type", flipScroll.FlipType);
+            EditorGUILayout.EndHorizontal();
+            EditorGUILayout.BeginHorizontal();
+            flipScroll.tweenType = (FlipScroll.TweenType)EditorGUILayout.EnumPopup("Tween Type", flipScroll.tweenType);
+            EditorGUILayout.EndHorizontal();
+            EditorGUILayout.BeginHorizontal();
+            flipScroll.loop = EditorGUILayout.Toggle("Loop", flipScroll.loop);
+            EditorGUILayout.EndHorizontal();
+            EditorGUILayout.BeginHorizontal();
+            flipScroll.TweenTime = EditorGUILayout.FloatField("Duration", flipScroll.TweenTime);
+            EditorGUILayout.EndHorizontal();
+            EditorGUILayout.BeginHorizontal();
+            EditorGUILayout.LabelField("Present RT",GUILayout.Width(100));
+            flipScroll.presentRT=EditorGUILayout.ObjectField(flipScroll.presentRT, typeof(RectTransform),true) as RectTransform;
+            EditorGUILayout.EndHorizontal();
+            EditorGUILayout.BeginHorizontal();
+            EditorGUILayout.LabelField("Last RT", GUILayout.Width(100));
+            flipScroll.lastRT = EditorGUILayout.ObjectField(flipScroll.lastRT, typeof(RectTransform),true) as RectTransform;
+            EditorGUILayout.EndHorizontal();
+            EditorGUILayout.BeginHorizontal();
+            flipScroll.pageCnt = EditorGUILayout.IntField("Page Cnt",flipScroll.pageCnt);
+            EditorGUILayout.EndHorizontal();
+            EditorGUILayout.BeginHorizontal();
+            flipScroll.resetOnEnable = EditorGUILayout.Toggle("Reset OnEnable", flipScroll.resetOnEnable);
+            EditorGUILayout.EndHorizontal();
+        }
+
+
+    }
+}
+
+
+
+
diff --git a/Assets/UIComponent/FlipScrollEditor.cs.meta b/Assets/UIComponent/FlipScrollEditor.cs.meta
new file mode 100644
index 0000000..b30df70
--- /dev/null
+++ b/Assets/UIComponent/FlipScrollEditor.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 19af42aaa9d187b4e82981f5eadfdeff
+timeCreated: 1505138907
+licenseType: Free
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/UIComponent/FunctionButtonEditor.cs b/Assets/UIComponent/FunctionButtonEditor.cs
new file mode 100644
index 0000000..df481d4
--- /dev/null
+++ b/Assets/UIComponent/FunctionButtonEditor.cs
@@ -0,0 +1,40 @@
+锘縰sing UnityEditor;
+using UnityEngine.UI;
+using UnityEngine;
+
+namespace vnxbqy.UI
+{
+    [CustomEditor(typeof(FunctionButton), true), CanEditMultipleObjects]
+    public class FunctionButtonEditor : UnityEditor.UI.ButtonEditor
+    {
+
+        public override void OnInspectorGUI()
+        {
+            base.OnInspectorGUI();
+            EditorGUILayout.Space();
+            var instance = target as FunctionButton;
+            instance.order = EditorGUILayout.IntField("Order", instance.order);
+            instance.functionId = EditorGUILayout.IntField("FunctionId", instance.functionId);
+            instance.redpoint = (RedpointBehaviour)EditorGUILayout.ObjectField("Redpoint", instance.redpoint, typeof(RedpointBehaviour), true);
+            instance.state = (TitleBtnState)EditorGUILayout.EnumPopup("State", instance.state);
+            instance.button = (Button)EditorGUILayout.ObjectField("Button", instance.button, typeof(Button), true);
+            instance.icon = (ImageEx)EditorGUILayout.ObjectField("Image", instance.icon, typeof(ImageEx), true);
+            instance.title = (TextEx)EditorGUILayout.ObjectField("Title", instance.title, typeof(TextEx), true);
+            instance.shadow = (Shadow)EditorGUILayout.ObjectField("Shadow", instance.shadow, typeof(Shadow), true);
+            instance.locked = (Transform)EditorGUILayout.ObjectField("Locked", instance.locked, typeof(Transform), true);
+            instance.clickAudio = EditorGUILayout.IntField("Audio", instance.clickAudio);
+
+            instance.useDefaultConfig = EditorGUILayout.Toggle("DefaultConfig", instance.useDefaultConfig);
+            if (!instance.useDefaultConfig)
+            {
+                EditorGUI.indentLevel++;
+                instance.alternativeConfig = (FunctionButtonConfig)EditorGUILayout.ObjectField("澶囩敤閰嶇疆", instance.alternativeConfig, typeof(FunctionButtonConfig), true);
+                EditorGUI.indentLevel--;
+            }
+
+            instance.group = (FunctionButtonGroup)EditorGUILayout.ObjectField("Group", instance.group, typeof(FunctionButtonGroup), true);
+        }
+    }
+
+}
+
diff --git a/Assets/UIComponent/FunctionButtonEditor.cs.meta b/Assets/UIComponent/FunctionButtonEditor.cs.meta
new file mode 100644
index 0000000..1b71930
--- /dev/null
+++ b/Assets/UIComponent/FunctionButtonEditor.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: f0f34011404b4c144ae53906afe8f825
+timeCreated: 1509431980
+licenseType: Pro
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/UIComponent/ImageExEditor.cs b/Assets/UIComponent/ImageExEditor.cs
new file mode 100644
index 0000000..c772fd6
--- /dev/null
+++ b/Assets/UIComponent/ImageExEditor.cs
@@ -0,0 +1,33 @@
+锘縰sing UnityEditor;
+using UnityEngine;
+
+[CustomEditor(typeof(ImageEx), true), CanEditMultipleObjects]
+public class ImageExEditor : UnityEditor.UI.ImageEditor
+{
+
+    SerializedProperty m_Gray;
+    SerializedProperty m_IconKey;
+
+    protected override void OnEnable()
+    {
+        base.OnEnable();
+        m_Gray = this.serializedObject.FindProperty("m_Gray");
+        m_IconKey = this.serializedObject.FindProperty("m_IconKey");
+    }
+
+    public override void OnInspectorGUI()
+    {
+        base.OnInspectorGUI();
+        EditorGUILayout.Space();
+
+        EditorGUILayout.PropertyField(m_Gray, new GUIContent("Gray"));
+        EditorGUILayout.PropertyField(m_IconKey, new GUIContent("IconKey"));
+
+        base.serializedObject.ApplyModifiedProperties();
+        Repaint();
+    }
+
+}
+
+
+
diff --git a/Assets/UIComponent/ImageExEditor.cs.meta b/Assets/UIComponent/ImageExEditor.cs.meta
new file mode 100644
index 0000000..d8cf2da
--- /dev/null
+++ b/Assets/UIComponent/ImageExEditor.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 4948f2195ca5ace41abd05648cfc509f
+timeCreated: 1501231802
+licenseType: Free
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/UIComponent/LayoutElementClampEditor.cs b/Assets/UIComponent/LayoutElementClampEditor.cs
new file mode 100644
index 0000000..47304f2
--- /dev/null
+++ b/Assets/UIComponent/LayoutElementClampEditor.cs
@@ -0,0 +1,33 @@
+锘�
+using UnityEditor;
+using UnityEngine;
+
+[CustomEditor(typeof(LayoutElementSizeClamp), false)]
+public class LayoutElementSizeClampEditor : UnityEditor.UI.LayoutElementEditor
+{
+    SerializedProperty m_ClampEnable;
+    SerializedProperty m_Clamp;
+    SerializedProperty m_Target;
+
+    protected override void OnEnable()
+    {
+        base.OnEnable();
+
+        m_ClampEnable = this.serializedObject.FindProperty("m_ClampEnable");
+        m_Clamp = this.serializedObject.FindProperty("m_Clamp");
+        m_Target = this.serializedObject.FindProperty("m_Target");
+    }
+
+    public override void OnInspectorGUI()
+    {
+        base.OnInspectorGUI();
+
+        EditorGUILayout.PropertyField(m_ClampEnable);
+        EditorGUILayout.PropertyField(m_Clamp, true);
+        EditorGUILayout.PropertyField(m_Target);
+
+        this.serializedObject.ApplyModifiedProperties();
+        Repaint();
+    }
+
+}
diff --git a/Assets/UIComponent/LayoutElementClampEditor.cs.meta b/Assets/UIComponent/LayoutElementClampEditor.cs.meta
new file mode 100644
index 0000000..e0e12d6
--- /dev/null
+++ b/Assets/UIComponent/LayoutElementClampEditor.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: d57d2d7ff8f2c8a4a8434818c94e7b5c
+timeCreated: 1555661453
+licenseType: Pro
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/UIComponent/LongPressButtonEditor.cs b/Assets/UIComponent/LongPressButtonEditor.cs
new file mode 100644
index 0000000..4abd70a
--- /dev/null
+++ b/Assets/UIComponent/LongPressButtonEditor.cs
@@ -0,0 +1,16 @@
+锘縰sing vnxbqy.UI;
+using UnityEditor;
+
+
+[CustomEditor(typeof(LongPressButton), true), CanEditMultipleObjects]
+public class LongPressButtonEditor : ButtonExEditor
+{
+
+    public override void OnInspectorGUI()
+    {
+        base.OnInspectorGUI();
+        LongPressButton button = target as LongPressButton;
+        button.longPressCheckTime = EditorGUILayout.FloatField("闀挎寜寤惰繜鏃堕棿锛屽惁鍒欏崟鍑�", button.longPressCheckTime);
+        button.longPressIntervalTime = EditorGUILayout.FloatField("闀挎寜闂撮殧鏃堕棿", button.longPressIntervalTime);
+    }
+}
diff --git a/Assets/UIComponent/LongPressButtonEditor.cs.meta b/Assets/UIComponent/LongPressButtonEditor.cs.meta
new file mode 100644
index 0000000..d4e0099
--- /dev/null
+++ b/Assets/UIComponent/LongPressButtonEditor.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 0a652013d93bfde468e88b38463b94f9
+timeCreated: 1519279568
+licenseType: Pro
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/UIComponent/PolylineImageEditor.cs b/Assets/UIComponent/PolylineImageEditor.cs
new file mode 100644
index 0000000..6789f28
--- /dev/null
+++ b/Assets/UIComponent/PolylineImageEditor.cs
@@ -0,0 +1,43 @@
+锘�//--------------------------------------------------------
+//    [Author]:           绗簩涓栫晫
+//    [  Date ]:           Monday, August 14, 2017
+//--------------------------------------------------------
+using UnityEngine;
+using System.Collections;
+using UnityEditor;
+
+namespace vnxbqy.UI {
+
+    [CustomEditor(typeof(PolylineImage)), CanEditMultipleObjects]
+    public class PolylineImageEditor:Editor {
+
+        protected virtual void OnSceneGUI() {
+
+            var polyline = (PolylineImage)this.target;
+
+            if(polyline.points != null) {
+                EditorGUI.BeginChangeCheck();
+
+                for(var i = 0;i < polyline.points.Length;i++) {
+                    var wh = polyline.points[i];
+                    var worldposition = polyline.transform.TransformPoint(wh);
+                    var handlePosition = Handles.PositionHandle(worldposition,Quaternion.identity);
+                    polyline.points[i] = polyline.transform.InverseTransformPoint(handlePosition);
+                }
+
+                if(EditorGUI.EndChangeCheck()) {
+                    polyline.SetVerticesDirty();
+                }
+
+                EditorUtility.SetDirty(polyline);
+            }
+
+        }
+
+
+    }
+
+}
+
+
+
diff --git a/Assets/UIComponent/PolylineImageEditor.cs.meta b/Assets/UIComponent/PolylineImageEditor.cs.meta
new file mode 100644
index 0000000..be585ee
--- /dev/null
+++ b/Assets/UIComponent/PolylineImageEditor.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 8ec6047673f869448b4047cb8bec1abe
+timeCreated: 1502675065
+licenseType: Pro
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/UIComponent/RichTextEditor.cs b/Assets/UIComponent/RichTextEditor.cs
new file mode 100644
index 0000000..7c10baf
--- /dev/null
+++ b/Assets/UIComponent/RichTextEditor.cs
@@ -0,0 +1,73 @@
+锘縰sing System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEditor;
+[CustomEditor(typeof(RichText))]
+[CanEditMultipleObjects]
+public class RichTextEditor : UnityEditor.UI.TextEditor {
+    private RichText m_Target;
+    protected override void OnEnable()
+    {
+        base.OnEnable();
+        if (target != null) {
+            m_Target = target as RichText;
+        }
+    }
+
+    public override void OnInspectorGUI()
+    {
+        base.OnInspectorGUI();
+        EditorGUILayout.BeginHorizontal();
+        EditorGUILayout.LabelField("璇█琛╧ey",GUILayout.Width(60));
+        m_Target.language = EditorGUILayout.Toggle(m_Target.language, GUILayout.Width(30));
+        m_Target.enableDisplay = EditorGUILayout.TextField(m_Target.enableDisplay, GUILayout.Width(200));
+        EditorGUILayout.EndHorizontal();
+        EditorGUILayout.BeginHorizontal();
+        m_Target.ImgDeltay = EditorGUILayout.FloatField("Image Delta Vertical", m_Target.ImgDeltay);
+        EditorGUILayout.EndHorizontal();
+        EditorGUILayout.BeginHorizontal();
+        m_Target.UnlineDeltay = EditorGUILayout.FloatField("Unline Delta Vertical", m_Target.UnlineDeltay);
+        EditorGUILayout.EndHorizontal();
+        EditorGUILayout.BeginHorizontal();
+        m_Target.UnlineHeight = EditorGUILayout.FloatField("Unline Height", m_Target.UnlineHeight);
+        EditorGUILayout.EndHorizontal();
+        EditorGUILayout.BeginHorizontal();
+        m_Target.FaceSize = EditorGUILayout.FloatField("Face Size", m_Target.FaceSize);
+        EditorGUILayout.EndHorizontal();
+        EditorGUILayout.BeginHorizontal();
+        m_Target.Unline = EditorGUILayout.Toggle("Unline", m_Target.Unline);
+        EditorGUILayout.EndHorizontal();
+        EditorGUILayout.BeginHorizontal();
+        m_Target.HrefClick = EditorGUILayout.Toggle("Href Click", m_Target.HrefClick);
+        EditorGUILayout.EndHorizontal();
+        EditorGUILayout.BeginHorizontal();
+        m_Target.AutoNewLine = EditorGUILayout.Toggle("Auto New Line", m_Target.AutoNewLine);
+        EditorGUILayout.EndHorizontal();
+        EditorGUILayout.BeginHorizontal();
+        m_Target.LockImgSize = EditorGUILayout.Toggle("Lock Img Size", m_Target.LockImgSize);
+        EditorGUILayout.EndHorizontal();
+        if (m_Target.LockImgSize) {
+            m_Target.ModifyImgSiez = false;
+        }
+        EditorGUILayout.BeginHorizontal();
+        m_Target.ModifyImgSiez = EditorGUILayout.Toggle("Modify Img Size", m_Target.ModifyImgSiez);
+        EditorGUILayout.EndHorizontal();
+        if (m_Target.ModifyImgSiez) {
+            m_Target.LockImgSize = false;
+            EditorGUILayout.BeginHorizontal();
+            m_Target.ModifyImgWidth = EditorGUILayout.FloatField("Modify Img Width", m_Target.ModifyImgWidth);
+            EditorGUILayout.EndHorizontal();
+            EditorGUILayout.BeginHorizontal();
+            m_Target.ModifyImgHeight = EditorGUILayout.FloatField("Modify Img Height", m_Target.ModifyImgHeight);
+            EditorGUILayout.EndHorizontal();
+        }
+        EditorGUILayout.BeginHorizontal();
+        m_Target.colorType = (RichText.ColorType)EditorGUILayout.EnumPopup("Color Type", m_Target.colorType);
+        EditorGUILayout.EndHorizontal();
+        EditorGUILayout.BeginHorizontal();
+        if (GUILayout.Button("ResetSize")) {
+            m_Target.SetFitterSize();
+        }
+        EditorGUILayout.EndHorizontal();
+    }
+}
diff --git a/Assets/UIComponent/RichTextEditor.cs.meta b/Assets/UIComponent/RichTextEditor.cs.meta
new file mode 100644
index 0000000..e7f0f64
--- /dev/null
+++ b/Assets/UIComponent/RichTextEditor.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: f7d79b6a30e10104ab4b524686ff603b
+timeCreated: 1504508819
+licenseType: Pro
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/UIComponent/TextExEditor.cs b/Assets/UIComponent/TextExEditor.cs
new file mode 100644
index 0000000..3a31c27
--- /dev/null
+++ b/Assets/UIComponent/TextExEditor.cs
@@ -0,0 +1,18 @@
+锘縰sing UnityEditor;
+using UnityEngine;
+
+[CustomEditor(typeof(TextEx),true),CanEditMultipleObjects]
+public class TextExEditor:UnityEditor.UI.TextEditor {
+
+    public override void OnInspectorGUI() {
+        base.OnInspectorGUI();
+        EditorGUILayout.Space();        
+        TextEx text = target as TextEx;
+        text.isKey = EditorGUILayout.Toggle("鏄瑷�琛↖D",text.isKey);
+        text.keyName = EditorGUILayout.TextField(text.keyName, GUILayout.Width(200));
+        text.colorType = (TextColType)EditorGUILayout.EnumPopup("棰滆壊绫诲瀷", text.colorType);
+        text.bgColorType = (TextEx.BackGroundColorType)EditorGUILayout.EnumPopup("鑳屾櫙棰滆壊绫诲瀷", text.bgColorType);
+    }
+
+}
+
diff --git a/Assets/UIComponent/TextExEditor.cs.meta b/Assets/UIComponent/TextExEditor.cs.meta
new file mode 100644
index 0000000..573ae5e
--- /dev/null
+++ b/Assets/UIComponent/TextExEditor.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 35b2bc3fe5ae31343b6aef5dd5b32ab0
+timeCreated: 1499227363
+licenseType: Free
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/UIComponent/ToggleExEditor.cs b/Assets/UIComponent/ToggleExEditor.cs
new file mode 100644
index 0000000..4d2a338
--- /dev/null
+++ b/Assets/UIComponent/ToggleExEditor.cs
@@ -0,0 +1,27 @@
+锘�//--------------------------------------------------------
+//    [Author]:           绗簩涓栫晫
+//    [  Date ]:           Tuesday, August 15, 2017
+//--------------------------------------------------------
+using UnityEditor;
+
+namespace vnxbqy.UI
+{
+
+    [CustomEditor(typeof(ToggleEx), true), CanEditMultipleObjects]
+    public class ToggleExEditor : UnityEditor.UI.ToggleEditor
+    {
+        public override void OnInspectorGUI()
+        {
+            base.OnInspectorGUI();
+
+            EditorGUILayout.Space();
+            ToggleEx toggle = target as ToggleEx;
+            toggle.clickAudio = EditorGUILayout.IntField("闊虫晥", toggle.clickAudio);
+        }
+
+    }
+
+}
+
+
+
diff --git a/Assets/UIComponent/ToggleExEditor.cs.meta b/Assets/UIComponent/ToggleExEditor.cs.meta
new file mode 100644
index 0000000..3eec5a6
--- /dev/null
+++ b/Assets/UIComponent/ToggleExEditor.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 81e7506d824b5dc42bf79bb72742c699
+timeCreated: 1502779563
+licenseType: Pro
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

--
Gitblit v1.8.0