三国卡牌客户端基础资源仓库
hch
15 小时以前 9fe74c79db3c3d6047651d84a278eb7a8555a513
0312 增加渐变文本
1 文件已重命名
2个文件已修改
1个文件已删除
1个文件已添加
189 ■■■■■ 已修改文件
Assets/Editor/SpritePacking/SpriteSettings.asset 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor/Tool/PrefabCreateTool.cs 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor/UIComponent/GradientTextEditor.cs 134 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor/UIComponent/GradientTextEditor.cs.meta 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor/UIComponent/OutlineColorEditor.cs 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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
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()
    {
Assets/Editor/UIComponent/GradientTextEditor.cs
New file
@@ -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;
    }
}
Assets/Editor/UIComponent/GradientTextEditor.cs.meta
File was renamed from Assets/Editor/UIComponent/OutlineColorEditor.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: e773e3c6a8eb0e74d8864360b4fd7e1e
guid: 8dfc4262d1ea3e0469457b42af76c1ee
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
Assets/Editor/UIComponent/OutlineColorEditor.cs
File was deleted