109 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
		
		
			
		
	
	
			109 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
|  | using System; | |||
|  | using UnityEngine; | |||
|  | using UnityEngine.Serialization; | |||
|  | using UnityEngine.TextCore; | |||
|  | 
 | |||
|  | namespace TMPro | |||
|  | { | |||
|  |     // Base class inherited by the various TextMeshPro Assets. | |||
|  |     [Serializable] | |||
|  |     public abstract class TMP_Asset : ScriptableObject | |||
|  |     { | |||
|  |         /// <summary> | |||
|  |         /// The version of the text asset class. | |||
|  |         /// Version 1.1.0 introduces new data structure to be compatible with new font asset structure. | |||
|  |         /// </summary> | |||
|  |         public string version | |||
|  |         { | |||
|  |             get { return m_Version; } | |||
|  |             internal set { m_Version = value; } | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// Instance ID of the TMP Asset | |||
|  |         /// </summary> | |||
|  |         public int instanceID | |||
|  |         { | |||
|  |             get | |||
|  |             { | |||
|  |                 if (m_InstanceID == 0) | |||
|  |                     m_InstanceID = GetInstanceID(); | |||
|  | 
 | |||
|  |                 return m_InstanceID; | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// HashCode based on the name of the asset. | |||
|  |         /// </summary> | |||
|  |         public int hashCode | |||
|  |         { | |||
|  |             get | |||
|  |             { | |||
|  |                 if (m_HashCode == 0) | |||
|  |                     m_HashCode = TMP_TextUtilities.GetHashCode(name); | |||
|  | 
 | |||
|  |                 return m_HashCode; | |||
|  |             } | |||
|  |             set => m_HashCode = value; | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// Information about the face of the asset. | |||
|  |         /// </summary> | |||
|  |         public FaceInfo faceInfo | |||
|  |         { | |||
|  |             get { return m_FaceInfo; } | |||
|  |             set { m_FaceInfo = value; } | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// The material used by this asset. | |||
|  |         /// </summary> | |||
|  |         public Material material | |||
|  |         { | |||
|  |             get => m_Material; | |||
|  |             set => m_Material = value; | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// HashCode based on the name of the material assigned to this asset. | |||
|  |         /// </summary> | |||
|  |         public int materialHashCode | |||
|  |         { | |||
|  |             get | |||
|  |             { | |||
|  |                 if (m_MaterialHashCode == 0) | |||
|  |                 { | |||
|  |                     if (m_Material == null) | |||
|  |                         return 0; | |||
|  | 
 | |||
|  |                     m_MaterialHashCode = TMP_TextUtilities.GetSimpleHashCode(m_Material.name); | |||
|  |                 } | |||
|  | 
 | |||
|  |                 return m_MaterialHashCode; | |||
|  |             } | |||
|  |             set => m_MaterialHashCode = value; | |||
|  |         } | |||
|  | 
 | |||
|  |         // ============================================= | |||
|  |         // Private backing fields for public properties. | |||
|  |         // ============================================= | |||
|  | 
 | |||
|  |         [SerializeField] | |||
|  |         internal string m_Version; | |||
|  | 
 | |||
|  |         internal int m_InstanceID; | |||
|  | 
 | |||
|  |         internal int m_HashCode; | |||
|  | 
 | |||
|  |         [SerializeField] | |||
|  |         internal FaceInfo m_FaceInfo; | |||
|  | 
 | |||
|  |         [SerializeField][FormerlySerializedAs("material")] | |||
|  |         internal Material m_Material; | |||
|  | 
 | |||
|  |         internal int m_MaterialHashCode; | |||
|  |     } | |||
|  | } |