summaryrefslogtreecommitdiff
path: root/Assets/Test/UIEffect/Program/UIGradient.cs
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2021-04-07 21:13:03 +0800
committerchai <chaifix@163.com>2021-04-07 21:13:03 +0800
commitd69611d66431e28ea35477c6781a00d57ae04fa3 (patch)
treec76b3147642a6d1749406f25f2fdacce4ba7a272 /Assets/Test/UIEffect/Program/UIGradient.cs
parentc7e2d8f773baa3955f17402b842eb43329c5f3a0 (diff)
*因为没有meta,导致missing,删除UIEffect
Diffstat (limited to 'Assets/Test/UIEffect/Program/UIGradient.cs')
-rw-r--r--Assets/Test/UIEffect/Program/UIGradient.cs319
1 files changed, 0 insertions, 319 deletions
diff --git a/Assets/Test/UIEffect/Program/UIGradient.cs b/Assets/Test/UIEffect/Program/UIGradient.cs
deleted file mode 100644
index b184182..0000000
--- a/Assets/Test/UIEffect/Program/UIGradient.cs
+++ /dev/null
@@ -1,319 +0,0 @@
-using UnityEngine;
-using UnityEngine.UI;
-
-namespace Coffee.UIEffects
-{
- /// <summary>
- /// UIGradient.
- /// </summary>
- [DisallowMultipleComponent]
- [AddComponentMenu("UI/UIEffects/UIGradient", 101)]
- public class UIGradient : BaseMeshEffect
- {
- static readonly Vector2[] s_SplitedCharacterPosition = {Vector2.up, Vector2.one, Vector2.right, Vector2.zero};
-
- /// <summary>
- /// Gradient direction.
- /// </summary>
- public enum Direction
- {
- Horizontal,
- Vertical,
- Angle,
- Diagonal,
- }
-
- /// <summary>
- /// Gradient space for Text.
- /// </summary>
- public enum GradientStyle
- {
- Rect,
- Fit,
- Split,
- }
-
-
- [Tooltip("Gradient Direction.")] [SerializeField]
- Direction m_Direction;
-
- [Tooltip("Color1: Top or Left.")] [SerializeField]
- Color m_Color1 = Color.white;
-
- [Tooltip("Color2: Bottom or Right.")] [SerializeField]
- Color m_Color2 = Color.white;
-
- [Tooltip("Color3: For diagonal.")] [SerializeField]
- Color m_Color3 = Color.white;
-
- [Tooltip("Color4: For diagonal.")] [SerializeField]
- Color m_Color4 = Color.white;
-
- [Tooltip("Gradient rotation.")] [SerializeField] [Range(-180, 180)]
- float m_Rotation;
-
- [Tooltip("Gradient offset for Horizontal, Vertical or Angle.")] [SerializeField] [Range(-1, 1)]
- float m_Offset1;
-
- [Tooltip("Gradient offset for Diagonal.")] [SerializeField] [Range(-1, 1)]
- float m_Offset2;
-
- [Tooltip("Gradient style for Text.")] [SerializeField]
- GradientStyle m_GradientStyle;
-
- [Tooltip("Color space to correct color.")] [SerializeField]
- ColorSpace m_ColorSpace = ColorSpace.Uninitialized;
-
- [Tooltip("Ignore aspect ratio.")] [SerializeField]
- bool m_IgnoreAspectRatio = true;
-
- /// <summary>
- /// Gradient Direction.
- /// </summary>
- public Direction direction
- {
- get { return m_Direction; }
- set
- {
- if (m_Direction == value) return;
- m_Direction = value;
- SetVerticesDirty();
- }
- }
-
- /// <summary>
- /// Color1: Top or Left.
- /// </summary>
- public Color color1
- {
- get { return m_Color1; }
- set
- {
- if (m_Color1 == value) return;
- m_Color1 = value;
- SetVerticesDirty();
- }
- }
-
- /// <summary>
- /// Color2: Bottom or Right.
- /// </summary>
- public Color color2
- {
- get { return m_Color2; }
- set
- {
- if (m_Color2 == value) return;
- m_Color2 = value;
- SetVerticesDirty();
- }
- }
-
- /// <summary>
- /// Color3: For diagonal.
- /// </summary>
- public Color color3
- {
- get { return m_Color3; }
- set
- {
- if (m_Color3 == value) return;
- m_Color3 = value;
- SetVerticesDirty();
- }
- }
-
- /// <summary>
- /// Color4: For diagonal.
- /// </summary>
- public Color color4
- {
- get { return m_Color4; }
- set
- {
- if (m_Color4 == value) return;
- m_Color4 = value;
- SetVerticesDirty();
- }
- }
-
- /// <summary>
- /// Gradient rotation.
- /// </summary>
- public float rotation
- {
- get
- {
- return m_Direction == Direction.Horizontal ? -90
- : m_Direction == Direction.Vertical ? 0
- : m_Rotation;
- }
- set
- {
- if (Mathf.Approximately(m_Rotation, value)) return;
- m_Rotation = value;
- SetVerticesDirty();
- }
- }
-
- /// <summary>
- /// Gradient offset for Horizontal, Vertical or Angle.
- /// </summary>
- public float offset
- {
- get { return m_Offset1; }
- set
- {
- if (Mathf.Approximately(m_Offset1, value)) return;
- m_Offset1 = value;
- SetVerticesDirty();
- }
- }
-
- /// <summary>
- /// Gradient offset for Diagonal.
- /// </summary>
- public Vector2 offset2
- {
- get { return new Vector2(m_Offset2, m_Offset1); }
- set
- {
- if (Mathf.Approximately(m_Offset1, value.y) && Mathf.Approximately(m_Offset2, value.x)) return;
- m_Offset1 = value.y;
- m_Offset2 = value.x;
- SetVerticesDirty();
- }
- }
-
- /// <summary>
- /// Gradient style for Text.
- /// </summary>
- public GradientStyle gradientStyle
- {
- get { return m_GradientStyle; }
- set
- {
- if (m_GradientStyle == value) return;
- m_GradientStyle = value;
- SetVerticesDirty();
- }
- }
-
- /// <summary>
- /// Color space to correct color.
- /// </summary>
- public ColorSpace colorSpace
- {
- get { return m_ColorSpace; }
- set
- {
- if (m_ColorSpace == value) return;
- m_ColorSpace = value;
- SetVerticesDirty();
- }
- }
-
- /// <summary>
- /// Ignore aspect ratio.
- /// </summary>
- public bool ignoreAspectRatio
- {
- get { return m_IgnoreAspectRatio; }
- set
- {
- if (m_IgnoreAspectRatio == value) return;
- m_IgnoreAspectRatio = value;
- SetVerticesDirty();
- }
- }
-
- /// <summary>
- /// Call used to modify mesh.
- /// </summary>
- public override void ModifyMesh(VertexHelper vh, Graphic graphic)
- {
- if (!isActiveAndEnabled)
- return;
-
- // Gradient space.
- var rect = default(Rect);
- var vertex = default(UIVertex);
- switch (m_GradientStyle)
- {
- case GradientStyle.Rect:
- // RectTransform.
- rect = graphic.rectTransform.rect;
- break;
- case GradientStyle.Split:
- // Each characters.
- rect.Set(0, 0, 1, 1);
- break;
- case GradientStyle.Fit:
- {
- // Fit to contents.
- rect.xMin = rect.yMin = float.MaxValue;
- rect.xMax = rect.yMax = float.MinValue;
- for (var i = 0; i < vh.currentVertCount; i++)
- {
- vh.PopulateUIVertex(ref vertex, i);
- rect.xMin = Mathf.Min(rect.xMin, vertex.position.x);
- rect.yMin = Mathf.Min(rect.yMin, vertex.position.y);
- rect.xMax = Mathf.Max(rect.xMax, vertex.position.x);
- rect.yMax = Mathf.Max(rect.yMax, vertex.position.y);
- }
-
- break;
- }
- }
-
- // Gradient rotation.
- var rad = rotation * Mathf.Deg2Rad;
- var dir = new Vector2(Mathf.Cos(rad), Mathf.Sin(rad));
- if (!m_IgnoreAspectRatio && Direction.Angle <= m_Direction)
- {
- dir.x *= rect.height / rect.width;
- dir = dir.normalized;
- }
-
- // Calculate vertex color.
- var localMatrix = new Matrix2x3(rect, dir.x, dir.y); // Get local matrix.
- for (var i = 0; i < vh.currentVertCount; i++)
- {
- vh.PopulateUIVertex(ref vertex, i);
-
- // Normalize vertex position by local matrix.
- Vector2 normalizedPos;
- if (m_GradientStyle == GradientStyle.Split)
- {
- // Each characters.
- normalizedPos = localMatrix * s_SplitedCharacterPosition[i % 4] + offset2;
- }
- else
- {
- normalizedPos = localMatrix * vertex.position + offset2;
- }
-
- // Interpolate vertex color.
- Color color;
- if (direction == Direction.Diagonal)
- {
- color = Color.LerpUnclamped(
- Color.LerpUnclamped(m_Color1, m_Color2, normalizedPos.x),
- Color.LerpUnclamped(m_Color3, m_Color4, normalizedPos.x),
- normalizedPos.y);
- }
- else
- {
- color = Color.LerpUnclamped(m_Color2, m_Color1, normalizedPos.y);
- }
-
- // Correct color.
- vertex.color *= (m_ColorSpace == ColorSpace.Gamma) ? color.gamma
- : (m_ColorSpace == ColorSpace.Linear) ? color.linear
- : color;
-
- vh.SetUIVertex(vertex, i);
- }
- }
- }
-}