You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
106 lines
3.1 KiB
106 lines
3.1 KiB
using System; |
|
using UnityEngine; |
|
|
|
namespace TMPro |
|
{ |
|
/// <summary> |
|
/// A basic element of text representing a pictograph, image, sprite or emoji. |
|
/// </summary> |
|
[Serializable] |
|
public class TMP_SpriteCharacter : TMP_TextElement |
|
{ |
|
/// <summary> |
|
/// The name of the sprite element. |
|
/// </summary> |
|
public string name |
|
{ |
|
get { return m_Name; } |
|
set |
|
{ |
|
if (value == m_Name) |
|
return; |
|
|
|
m_Name = value; |
|
m_HashCode = TMP_TextParsingUtilities.GetHashCodeCaseSensitive(m_Name); |
|
} |
|
} |
|
|
|
/// <summary> |
|
/// 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. |
|
/// </summary> |
|
public int hashCode { get { return m_HashCode; } } |
|
|
|
|
|
// ============================================= |
|
// Private backing fields for public properties. |
|
// ============================================= |
|
|
|
[SerializeField] |
|
private string m_Name; |
|
|
|
[SerializeField] |
|
private int m_HashCode; |
|
|
|
|
|
// ******************** |
|
// CONSTRUCTORS |
|
// ******************** |
|
|
|
/// <summary> |
|
/// Default constructor. |
|
/// </summary> |
|
public TMP_SpriteCharacter() |
|
{ |
|
m_ElementType = TextElementType.Sprite; |
|
} |
|
|
|
/// <summary> |
|
/// Constructor for new sprite character. |
|
/// </summary> |
|
/// <param name="unicode">Unicode value of the sprite character.</param> |
|
/// <param name="glyph">Glyph used by the sprite character.</param> |
|
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; |
|
} |
|
|
|
/// <summary> |
|
/// Constructor for new sprite character. |
|
/// </summary> |
|
/// <param name="unicode">Unicode value of the sprite character.</param> |
|
/// <param name="spriteAsset">Sprite Asset used by this sprite character.</param> |
|
/// <param name="glyph">Glyph used by the sprite character.</param> |
|
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; |
|
} |
|
|
|
/// <summary> |
|
/// |
|
/// </summary> |
|
/// <param name="unicode"></param> |
|
/// <param name="glyphIndex"></param> |
|
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; |
|
} |
|
} |
|
}
|
|
|