1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- using System;
- using TMPro;
- using UnityEngine;
- namespace UnityUIPlayables
- {
- [Serializable]
- public class TextMeshProUGUIAnimationValue
- {
- [SerializeField] private float _fontSize = 36;
- [SerializeField] private Color _color = Color.white;
- [SerializeField] private GradientValue _gradient;
- [SerializeField] private SpacingValue _spacing;
- [SerializeField] private Color _faceColor = Color.white;
- [SerializeField] private Color _outlineColor = Color.black;
- [SerializeField] private float _outlineWidth;
- public float FontSize => _fontSize;
- public Color Color => _color;
- public VertexGradient VertexGradient => _gradient.GetGradient();
- public SpacingValue Spacing => _spacing;
- public Color FaceColor => _faceColor;
- public Color OutlineColor => _outlineColor;
- public float OutlineWidth => _outlineWidth;
- [Serializable]
- private class GradientValue
- {
- [SerializeField] private bool _usePreset;
- [SerializeField] [EnabledIf(nameof(_usePreset), false)]
- private VertexGradient _vertexGradient = new VertexGradient(Color.white);
- [SerializeField] [EnabledIf(nameof(_usePreset), true)]
- private TMP_ColorGradient _preset;
- public VertexGradient GetGradient()
- {
- if (!_usePreset)
- {
- return _vertexGradient;
- }
- if (_preset == null)
- {
- return new VertexGradient(Color.white);
- }
- return new VertexGradient(_preset.topLeft, _preset.topRight, _preset.bottomLeft,
- _preset.bottomRight);
- }
- }
- [Serializable]
- public struct SpacingValue
- {
- [SerializeField] private float _character;
- [SerializeField] private float _line;
- [SerializeField] private float _word;
- [SerializeField] private float _paragraph;
- public float Character => _character;
- public float Line => _line;
- public float Word => _word;
- public float Paragraph => _paragraph;
- }
- }
- }
|