From 9fe74c79db3c3d6047651d84a278eb7a8555a513 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期日, 09 十一月 2025 16:02:40 +0800
Subject: [PATCH] 0312 增加渐变文本
---
Assets/Editor/SpritePacking/SpriteSettings.asset | 22 +++++
/dev/null | 17 ----
Assets/Editor/UIComponent/GradientTextEditor.cs.meta | 2
Assets/Editor/UIComponent/GradientTextEditor.cs | 134 +++++++++++++++++++++++++++++++++
Assets/Editor/Tool/PrefabCreateTool.cs | 14 +++
5 files changed, 171 insertions(+), 18 deletions(-)
diff --git a/Assets/Editor/SpritePacking/SpriteSettings.asset b/Assets/Editor/SpritePacking/SpriteSettings.asset
index e11a74f..33736a1 100644
--- a/Assets/Editor/SpritePacking/SpriteSettings.asset
+++ b/Assets/Editor/SpritePacking/SpriteSettings.asset
@@ -695,3 +695,25 @@
maxTextureSize: 2048
textureCompression: 1
textureFormat: 50
+ - folderName: BattlePass
+ blockOffset: 1
+ enableRotation: 0
+ enableTightPacking: 0
+ padding: 4
+ readable: 0
+ generateMipMaps: 0
+ sRGB: 1
+ filterMode: 1
+ platformSettings:
+ - name: Standalone
+ maxTextureSize: 2048
+ textureCompression: 1
+ textureFormat: 4
+ - name: Android
+ maxTextureSize: 2048
+ textureCompression: 1
+ textureFormat: 50
+ - name: iPhone
+ maxTextureSize: 2048
+ textureCompression: 1
+ textureFormat: 50
diff --git a/Assets/Editor/Tool/PrefabCreateTool.cs b/Assets/Editor/Tool/PrefabCreateTool.cs
index db8eaf3..21c2e1e 100644
--- a/Assets/Editor/Tool/PrefabCreateTool.cs
+++ b/Assets/Editor/Tool/PrefabCreateTool.cs
@@ -130,6 +130,20 @@
SetParent(instance);
}
+ [MenuItem("GameObject/UI/娓愬彉鏂囨湰")]
+ public static void CreateGradientText()
+ {
+ var instance = new GameObject("GradientText");
+ var text = instance.AddComponent<GradientText>();
+ text.font = FontUtility.preferred;
+ text.fontSize = 22;
+ text.alignment = TextAnchor.MiddleCenter;
+ text.raycastTarget = false;
+ text.horizontalOverflow = HorizontalWrapMode.Overflow;
+ text.verticalOverflow = VerticalWrapMode.Overflow;
+ SetParent(instance);
+ }
+
[MenuItem("GameObject/UI/TextEx")]
public static void CreateTextEx()
{
diff --git a/Assets/Editor/UIComponent/GradientTextEditor.cs b/Assets/Editor/UIComponent/GradientTextEditor.cs
new file mode 100644
index 0000000..13bd37b
--- /dev/null
+++ b/Assets/Editor/UIComponent/GradientTextEditor.cs
@@ -0,0 +1,134 @@
+using UnityEditor;
+using UnityEngine;
+using UnityEngine.UI;
+
+[CustomEditor(typeof(GradientText), true), CanEditMultipleObjects]
+public class GradientTextEditor : UnityEditor.UI.TextEditor
+{
+ private SerializedProperty m_GradientType;
+ private SerializedProperty m_TopLeftColor;
+ private SerializedProperty m_TopRightColor;
+ private SerializedProperty m_BottomLeftColor;
+ private SerializedProperty m_BottomRightColor;
+ private SerializedProperty m_UseGradient;
+
+ protected override void OnEnable()
+ {
+ base.OnEnable();
+
+ m_GradientType = serializedObject.FindProperty("m_GradientType");
+ m_TopLeftColor = serializedObject.FindProperty("m_TopLeftColor");
+ m_TopRightColor = serializedObject.FindProperty("m_TopRightColor");
+ m_BottomLeftColor = serializedObject.FindProperty("m_BottomLeftColor");
+ m_BottomRightColor = serializedObject.FindProperty("m_BottomRightColor");
+ m_UseGradient = serializedObject.FindProperty("m_UseGradient");
+ }
+
+ public override void OnInspectorGUI()
+ {
+ base.OnInspectorGUI();
+
+ EditorGUILayout.Space();
+ EditorGUILayout.LabelField("娓愬彉璁剧疆", EditorStyles.boldLabel);
+
+ serializedObject.Update();
+
+ EditorGUILayout.PropertyField(m_UseGradient, new GUIContent("鍚敤娓愬彉"));
+
+ if (m_UseGradient.boolValue)
+ {
+ EditorGUILayout.PropertyField(m_GradientType, new GUIContent("娓愬彉绫诲瀷"));
+
+ var gradientType = (GradientText.GradientType)m_GradientType.enumValueIndex;
+
+ switch (gradientType)
+ {
+ case GradientText.GradientType.Horizontal:
+ EditorGUILayout.PropertyField(m_TopLeftColor, new GUIContent("宸︿晶棰滆壊"));
+ EditorGUILayout.PropertyField(m_TopRightColor, new GUIContent("鍙充晶棰滆壊"));
+ break;
+
+ case GradientText.GradientType.Vertical:
+ EditorGUILayout.PropertyField(m_TopLeftColor, new GUIContent("椤堕儴棰滆壊"));
+ EditorGUILayout.PropertyField(m_BottomLeftColor, new GUIContent("搴曢儴棰滆壊"));
+ break;
+
+ case GradientText.GradientType.Diagonal:
+ EditorGUILayout.PropertyField(m_TopLeftColor, new GUIContent("宸︿笂棰滆壊"));
+ EditorGUILayout.PropertyField(m_BottomRightColor, new GUIContent("鍙充笅棰滆壊"));
+ break;
+
+ case GradientText.GradientType.Radial:
+ EditorGUILayout.PropertyField(m_TopLeftColor, new GUIContent("涓績棰滆壊"));
+ EditorGUILayout.PropertyField(m_BottomRightColor, new GUIContent("杈圭紭棰滆壊"));
+ break;
+
+ case GradientText.GradientType.Custom:
+ EditorGUILayout.PropertyField(m_TopLeftColor, new GUIContent("宸︿笂棰滆壊"));
+ EditorGUILayout.PropertyField(m_TopRightColor, new GUIContent("鍙充笂棰滆壊"));
+ EditorGUILayout.PropertyField(m_BottomLeftColor, new GUIContent("宸︿笅棰滆壊"));
+ EditorGUILayout.PropertyField(m_BottomRightColor, new GUIContent("鍙充笅棰滆壊"));
+ break;
+ }
+
+ // 蹇�熻缃寜閽�
+ EditorGUILayout.Space();
+ EditorGUILayout.LabelField("蹇�熻缃�", EditorStyles.miniLabel);
+
+ GUILayout.BeginHorizontal();
+ if (GUILayout.Button("绾⑩啋钃�"))
+ {
+ SetHorizontalGradient(Color.red, Color.blue);
+ }
+ if (GUILayout.Button("缁库啋榛�"))
+ {
+ SetHorizontalGradient(Color.green, Color.yellow);
+ }
+ if (GUILayout.Button("褰╄櫣"))
+ {
+ SetRainbowGradient();
+ }
+ GUILayout.EndHorizontal();
+
+ GUILayout.BeginHorizontal();
+ if (GUILayout.Button("閲戔啋姗�"))
+ {
+ SetVerticalGradient(Color.yellow, new Color(1f, 0.5f, 0f));
+ }
+ if (GUILayout.Button("绱啋绮�"))
+ {
+ SetVerticalGradient(new Color(0.5f, 0f, 0.5f), new Color(1f, 0.4f, 0.7f));
+ }
+ GUILayout.EndHorizontal();
+ }
+
+ serializedObject.ApplyModifiedProperties();
+ }
+
+ private void SetHorizontalGradient(Color leftColor, Color rightColor)
+ {
+ m_GradientType.enumValueIndex = (int)GradientText.GradientType.Horizontal;
+ m_TopLeftColor.colorValue = leftColor;
+ m_BottomLeftColor.colorValue = leftColor;
+ m_TopRightColor.colorValue = rightColor;
+ m_BottomRightColor.colorValue = rightColor;
+ }
+
+ private void SetVerticalGradient(Color topColor, Color bottomColor)
+ {
+ m_GradientType.enumValueIndex = (int)GradientText.GradientType.Vertical;
+ m_TopLeftColor.colorValue = topColor;
+ m_TopRightColor.colorValue = topColor;
+ m_BottomLeftColor.colorValue = bottomColor;
+ m_BottomRightColor.colorValue = bottomColor;
+ }
+
+ private void SetRainbowGradient()
+ {
+ m_GradientType.enumValueIndex = (int)GradientText.GradientType.Horizontal;
+ m_TopLeftColor.colorValue = Color.red;
+ m_BottomLeftColor.colorValue = Color.red;
+ m_TopRightColor.colorValue = Color.blue;
+ m_BottomRightColor.colorValue = Color.blue;
+ }
+}
\ No newline at end of file
diff --git a/Assets/Editor/UIComponent/OutlineColorEditor.cs.meta b/Assets/Editor/UIComponent/GradientTextEditor.cs.meta
similarity index 83%
rename from Assets/Editor/UIComponent/OutlineColorEditor.cs.meta
rename to Assets/Editor/UIComponent/GradientTextEditor.cs.meta
index 805da84..c8a2115 100644
--- a/Assets/Editor/UIComponent/OutlineColorEditor.cs.meta
+++ b/Assets/Editor/UIComponent/GradientTextEditor.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: e773e3c6a8eb0e74d8864360b4fd7e1e
+guid: 8dfc4262d1ea3e0469457b42af76c1ee
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/Assets/Editor/UIComponent/OutlineColorEditor.cs b/Assets/Editor/UIComponent/OutlineColorEditor.cs
deleted file mode 100644
index 3bca106..0000000
--- a/Assets/Editor/UIComponent/OutlineColorEditor.cs
+++ /dev/null
@@ -1,17 +0,0 @@
-锘縰sing UnityEditor;
-using UnityEngine;
-
-[CustomEditor(typeof(OutlineColor),true),CanEditMultipleObjects]
-public class OutlineColorEditor:Editor {
-
- public override void OnInspectorGUI()
- {
- base.OnInspectorGUI();
- EditorGUILayout.Space();
- OutlineColor outline = target as OutlineColor;
- outline.colorType = (QualityTextColType)EditorGUILayout.EnumPopup("棰滆壊绫诲瀷", outline.colorType);
- outline.effectDistanceEx = EditorGUILayout.Vector2Field("鎻忚竟璺濈",outline.effectDistanceEx);
- }
-
-}
-
--
Gitblit v1.8.0