using System; using UnityEngine; namespace TMPro { /// /// A basic element of text representing a pictograph, image, sprite or emoji. /// [Serializable] public class TMP_SpriteCharacter : TMP_TextElement { /// /// The name of the sprite element. /// public string name { get { return m_Name; } set { if (value == m_Name) return; m_Name = value; m_HashCode = TMP_TextParsingUtilities.GetHashCodeCaseSensitive(m_Name); } } /// /// The hashcode value which is computed from the name of the sprite element. /// This value is read-only and updated when the name of the text sprite is changed. /// public int hashCode { get { return m_HashCode; } } // ============================================= // Private backing fields for public properties. // ============================================= [SerializeField] private string m_Name; [SerializeField] private int m_HashCode; // ******************** // CONSTRUCTORS // ******************** /// /// Default constructor. /// public TMP_SpriteCharacter() { m_ElementType = TextElementType.Sprite; } /// /// Constructor for new sprite character. /// /// Unicode value of the sprite character. /// Glyph used by the sprite character. public TMP_SpriteCharacter(uint unicode, TMP_SpriteGlyph glyph) { m_ElementType = TextElementType.Sprite; this.unicode = unicode; this.glyphIndex = glyph.index; this.glyph = glyph; this.scale = 1.0f; } /// /// Constructor for new sprite character. /// /// Unicode value of the sprite character. /// Sprite Asset used by this sprite character. /// Glyph used by the sprite character. public TMP_SpriteCharacter(uint unicode, TMP_SpriteAsset spriteAsset, TMP_SpriteGlyph glyph) { m_ElementType = TextElementType.Sprite; this.unicode = unicode; this.textAsset = spriteAsset; this.glyph = glyph; this.glyphIndex = glyph.index; this.scale = 1.0f; } /// /// /// /// /// internal TMP_SpriteCharacter(uint unicode, uint glyphIndex) { m_ElementType = TextElementType.Sprite; this.unicode = unicode; this.textAsset = null; this.glyph = null; this.glyphIndex = glyphIndex; this.scale = 1.0f; } } }