using System; using System.Collections.Generic; namespace UnityEngine.UI { // Token: 0x0200007D RID: 125 [AddComponentMenu("UI/Text", 10)] public class Text : MaskableGraphic, ILayoutElement { // Token: 0x06000497 RID: 1175 RVA: 0x00019345 File Offset: 0x00017745 protected Text() { base.useLegacyMeshGeneration = false; } // Token: 0x1700013C RID: 316 // (get) Token: 0x06000498 RID: 1176 RVA: 0x00019380 File Offset: 0x00017780 public TextGenerator cachedTextGenerator { get { TextGenerator textGenerator; if ((textGenerator = this.m_TextCache) == null) { textGenerator = (this.m_TextCache = ((this.m_Text.Length == 0) ? new TextGenerator() : new TextGenerator(this.m_Text.Length))); } return textGenerator; } } // Token: 0x1700013D RID: 317 // (get) Token: 0x06000499 RID: 1177 RVA: 0x000193D8 File Offset: 0x000177D8 public TextGenerator cachedTextGeneratorForLayout { get { TextGenerator textGenerator; if ((textGenerator = this.m_TextCacheForLayout) == null) { textGenerator = (this.m_TextCacheForLayout = new TextGenerator()); } return textGenerator; } } // Token: 0x1700013E RID: 318 // (get) Token: 0x0600049A RID: 1178 RVA: 0x00019408 File Offset: 0x00017808 public override Texture mainTexture { get { Texture texture; if (this.font != null && this.font.material != null && this.font.material.mainTexture != null) { texture = this.font.material.mainTexture; } else if (this.m_Material != null) { texture = this.m_Material.mainTexture; } else { texture = base.mainTexture; } return texture; } } // Token: 0x0600049B RID: 1179 RVA: 0x000194A0 File Offset: 0x000178A0 public void FontTextureChanged() { if (this) { if (!this.m_DisableFontTextureRebuiltCallback) { this.cachedTextGenerator.Invalidate(); if (this.IsActive()) { if (CanvasUpdateRegistry.IsRebuildingGraphics() || CanvasUpdateRegistry.IsRebuildingLayout()) { this.UpdateGeometry(); } else { this.SetAllDirty(); } } } } } // Token: 0x1700013F RID: 319 // (get) Token: 0x0600049C RID: 1180 RVA: 0x00019510 File Offset: 0x00017910 // (set) Token: 0x0600049D RID: 1181 RVA: 0x00019530 File Offset: 0x00017930 public Font font { get { return this.m_FontData.font; } set { if (!(this.m_FontData.font == value)) { FontUpdateTracker.UntrackText(this); this.m_FontData.font = value; FontUpdateTracker.TrackText(this); this.SetAllDirty(); } } } // Token: 0x17000140 RID: 320 // (get) Token: 0x0600049E RID: 1182 RVA: 0x0001956C File Offset: 0x0001796C // (set) Token: 0x0600049F RID: 1183 RVA: 0x00019588 File Offset: 0x00017988 public virtual string text { get { return this.m_Text; } set { if (string.IsNullOrEmpty(value)) { if (!string.IsNullOrEmpty(this.m_Text)) { this.m_Text = ""; this.SetVerticesDirty(); } } else if (this.m_Text != value) { this.m_Text = value; this.SetVerticesDirty(); this.SetLayoutDirty(); } } } // Token: 0x17000141 RID: 321 // (get) Token: 0x060004A0 RID: 1184 RVA: 0x000195F4 File Offset: 0x000179F4 // (set) Token: 0x060004A1 RID: 1185 RVA: 0x00019614 File Offset: 0x00017A14 public bool supportRichText { get { return this.m_FontData.richText; } set { if (this.m_FontData.richText != value) { this.m_FontData.richText = value; this.SetVerticesDirty(); this.SetLayoutDirty(); } } } // Token: 0x17000142 RID: 322 // (get) Token: 0x060004A2 RID: 1186 RVA: 0x00019648 File Offset: 0x00017A48 // (set) Token: 0x060004A3 RID: 1187 RVA: 0x00019668 File Offset: 0x00017A68 public bool resizeTextForBestFit { get { return this.m_FontData.bestFit; } set { if (this.m_FontData.bestFit != value) { this.m_FontData.bestFit = value; this.SetVerticesDirty(); this.SetLayoutDirty(); } } } // Token: 0x17000143 RID: 323 // (get) Token: 0x060004A4 RID: 1188 RVA: 0x0001969C File Offset: 0x00017A9C // (set) Token: 0x060004A5 RID: 1189 RVA: 0x000196BC File Offset: 0x00017ABC public int resizeTextMinSize { get { return this.m_FontData.minSize; } set { if (this.m_FontData.minSize != value) { this.m_FontData.minSize = value; this.SetVerticesDirty(); this.SetLayoutDirty(); } } } // Token: 0x17000144 RID: 324 // (get) Token: 0x060004A6 RID: 1190 RVA: 0x000196F0 File Offset: 0x00017AF0 // (set) Token: 0x060004A7 RID: 1191 RVA: 0x00019710 File Offset: 0x00017B10 public int resizeTextMaxSize { get { return this.m_FontData.maxSize; } set { if (this.m_FontData.maxSize != value) { this.m_FontData.maxSize = value; this.SetVerticesDirty(); this.SetLayoutDirty(); } } } // Token: 0x17000145 RID: 325 // (get) Token: 0x060004A8 RID: 1192 RVA: 0x00019744 File Offset: 0x00017B44 // (set) Token: 0x060004A9 RID: 1193 RVA: 0x00019764 File Offset: 0x00017B64 public TextAnchor alignment { get { return this.m_FontData.alignment; } set { if (this.m_FontData.alignment != value) { this.m_FontData.alignment = value; this.SetVerticesDirty(); this.SetLayoutDirty(); } } } // Token: 0x17000146 RID: 326 // (get) Token: 0x060004AA RID: 1194 RVA: 0x00019798 File Offset: 0x00017B98 // (set) Token: 0x060004AB RID: 1195 RVA: 0x000197B8 File Offset: 0x00017BB8 public bool alignByGeometry { get { return this.m_FontData.alignByGeometry; } set { if (this.m_FontData.alignByGeometry != value) { this.m_FontData.alignByGeometry = value; this.SetVerticesDirty(); } } } // Token: 0x17000147 RID: 327 // (get) Token: 0x060004AC RID: 1196 RVA: 0x000197E4 File Offset: 0x00017BE4 // (set) Token: 0x060004AD RID: 1197 RVA: 0x00019804 File Offset: 0x00017C04 public int fontSize { get { return this.m_FontData.fontSize; } set { if (this.m_FontData.fontSize != value) { this.m_FontData.fontSize = value; this.SetVerticesDirty(); this.SetLayoutDirty(); } } } // Token: 0x17000148 RID: 328 // (get) Token: 0x060004AE RID: 1198 RVA: 0x00019838 File Offset: 0x00017C38 // (set) Token: 0x060004AF RID: 1199 RVA: 0x00019858 File Offset: 0x00017C58 public HorizontalWrapMode horizontalOverflow { get { return this.m_FontData.horizontalOverflow; } set { if (this.m_FontData.horizontalOverflow != value) { this.m_FontData.horizontalOverflow = value; this.SetVerticesDirty(); this.SetLayoutDirty(); } } } // Token: 0x17000149 RID: 329 // (get) Token: 0x060004B0 RID: 1200 RVA: 0x0001988C File Offset: 0x00017C8C // (set) Token: 0x060004B1 RID: 1201 RVA: 0x000198AC File Offset: 0x00017CAC public VerticalWrapMode verticalOverflow { get { return this.m_FontData.verticalOverflow; } set { if (this.m_FontData.verticalOverflow != value) { this.m_FontData.verticalOverflow = value; this.SetVerticesDirty(); this.SetLayoutDirty(); } } } // Token: 0x1700014A RID: 330 // (get) Token: 0x060004B2 RID: 1202 RVA: 0x000198E0 File Offset: 0x00017CE0 // (set) Token: 0x060004B3 RID: 1203 RVA: 0x00019900 File Offset: 0x00017D00 public float lineSpacing { get { return this.m_FontData.lineSpacing; } set { if (this.m_FontData.lineSpacing != value) { this.m_FontData.lineSpacing = value; this.SetVerticesDirty(); this.SetLayoutDirty(); } } } // Token: 0x1700014B RID: 331 // (get) Token: 0x060004B4 RID: 1204 RVA: 0x00019934 File Offset: 0x00017D34 // (set) Token: 0x060004B5 RID: 1205 RVA: 0x00019954 File Offset: 0x00017D54 public FontStyle fontStyle { get { return this.m_FontData.fontStyle; } set { if (this.m_FontData.fontStyle != value) { this.m_FontData.fontStyle = value; this.SetVerticesDirty(); this.SetLayoutDirty(); } } } // Token: 0x1700014C RID: 332 // (get) Token: 0x060004B6 RID: 1206 RVA: 0x00019988 File Offset: 0x00017D88 public float pixelsPerUnit { get { Canvas canvas = base.canvas; float num; if (!canvas) { num = 1f; } else if (!this.font || this.font.dynamic) { num = canvas.scaleFactor; } else if (this.m_FontData.fontSize <= 0 || this.font.fontSize <= 0) { num = 1f; } else { num = (float)this.font.fontSize / (float)this.m_FontData.fontSize; } return num; } } // Token: 0x060004B7 RID: 1207 RVA: 0x00019A2C File Offset: 0x00017E2C protected override void OnEnable() { base.OnEnable(); this.cachedTextGenerator.Invalidate(); FontUpdateTracker.TrackText(this); } // Token: 0x060004B8 RID: 1208 RVA: 0x00019A46 File Offset: 0x00017E46 protected override void OnDisable() { FontUpdateTracker.UntrackText(this); base.OnDisable(); } // Token: 0x060004B9 RID: 1209 RVA: 0x00019A55 File Offset: 0x00017E55 protected override void UpdateGeometry() { if (this.font != null) { base.UpdateGeometry(); } } // Token: 0x060004BA RID: 1210 RVA: 0x00019A71 File Offset: 0x00017E71 internal void AssignDefaultFont() { this.font = Resources.GetBuiltinResource("Arial.ttf"); } // Token: 0x060004BB RID: 1211 RVA: 0x00019A84 File Offset: 0x00017E84 public TextGenerationSettings GetGenerationSettings(Vector2 extents) { TextGenerationSettings textGenerationSettings = default(TextGenerationSettings); textGenerationSettings.generationExtents = extents; if (this.font != null && this.font.dynamic) { textGenerationSettings.fontSize = this.m_FontData.fontSize; textGenerationSettings.resizeTextMinSize = this.m_FontData.minSize; textGenerationSettings.resizeTextMaxSize = this.m_FontData.maxSize; } textGenerationSettings.textAnchor = this.m_FontData.alignment; textGenerationSettings.alignByGeometry = this.m_FontData.alignByGeometry; textGenerationSettings.scaleFactor = this.pixelsPerUnit; textGenerationSettings.color = this.color; textGenerationSettings.font = this.font; textGenerationSettings.pivot = base.rectTransform.pivot; textGenerationSettings.richText = this.m_FontData.richText; textGenerationSettings.lineSpacing = this.m_FontData.lineSpacing; textGenerationSettings.fontStyle = this.m_FontData.fontStyle; textGenerationSettings.resizeTextForBestFit = this.m_FontData.bestFit; textGenerationSettings.updateBounds = false; textGenerationSettings.horizontalOverflow = this.m_FontData.horizontalOverflow; textGenerationSettings.verticalOverflow = this.m_FontData.verticalOverflow; return textGenerationSettings; } // Token: 0x060004BC RID: 1212 RVA: 0x00019BD4 File Offset: 0x00017FD4 public static Vector2 GetTextAnchorPivot(TextAnchor anchor) { Vector2 vector; switch (anchor) { case TextAnchor.UpperLeft: vector = new Vector2(0f, 1f); break; case TextAnchor.UpperCenter: vector = new Vector2(0.5f, 1f); break; case TextAnchor.UpperRight: vector = new Vector2(1f, 1f); break; case TextAnchor.MiddleLeft: vector = new Vector2(0f, 0.5f); break; case TextAnchor.MiddleCenter: vector = new Vector2(0.5f, 0.5f); break; case TextAnchor.MiddleRight: vector = new Vector2(1f, 0.5f); break; case TextAnchor.LowerLeft: vector = new Vector2(0f, 0f); break; case TextAnchor.LowerCenter: vector = new Vector2(0.5f, 0f); break; case TextAnchor.LowerRight: vector = new Vector2(1f, 0f); break; default: vector = Vector2.zero; break; } return vector; } // Token: 0x060004BD RID: 1213 RVA: 0x00019CDC File Offset: 0x000180DC protected override void OnPopulateMesh(VertexHelper toFill) { if (!(this.font == null)) { this.m_DisableFontTextureRebuiltCallback = true; Vector2 size = base.rectTransform.rect.size; TextGenerationSettings generationSettings = this.GetGenerationSettings(size); this.cachedTextGenerator.PopulateWithErrors(this.text, generationSettings, base.gameObject); IList verts = this.cachedTextGenerator.verts; float num = 1f / this.pixelsPerUnit; int num2 = verts.Count - 4; Vector2 vector = new Vector2(verts[0].position.x, verts[0].position.y) * num; vector = base.PixelAdjustPoint(vector) - vector; toFill.Clear(); if (vector != Vector2.zero) { for (int i = 0; i < num2; i++) { int num3 = i & 3; this.m_TempVerts[num3] = verts[i]; UIVertex[] tempVerts = this.m_TempVerts; int num4 = num3; tempVerts[num4].position = tempVerts[num4].position * num; UIVertex[] tempVerts2 = this.m_TempVerts; int num5 = num3; tempVerts2[num5].position.x = tempVerts2[num5].position.x + vector.x; UIVertex[] tempVerts3 = this.m_TempVerts; int num6 = num3; tempVerts3[num6].position.y = tempVerts3[num6].position.y + vector.y; if (num3 == 3) { toFill.AddUIVertexQuad(this.m_TempVerts); } } } else { for (int j = 0; j < num2; j++) { int num7 = j & 3; this.m_TempVerts[num7] = verts[j]; UIVertex[] tempVerts4 = this.m_TempVerts; int num8 = num7; tempVerts4[num8].position = tempVerts4[num8].position * num; if (num7 == 3) { toFill.AddUIVertexQuad(this.m_TempVerts); } } } this.m_DisableFontTextureRebuiltCallback = false; } } // Token: 0x060004BE RID: 1214 RVA: 0x00019EF2 File Offset: 0x000182F2 public virtual void CalculateLayoutInputHorizontal() { } // Token: 0x060004BF RID: 1215 RVA: 0x00019EF5 File Offset: 0x000182F5 public virtual void CalculateLayoutInputVertical() { } // Token: 0x1700014D RID: 333 // (get) Token: 0x060004C0 RID: 1216 RVA: 0x00019EF8 File Offset: 0x000182F8 public virtual float minWidth { get { return 0f; } } // Token: 0x1700014E RID: 334 // (get) Token: 0x060004C1 RID: 1217 RVA: 0x00019F14 File Offset: 0x00018314 public virtual float preferredWidth { get { TextGenerationSettings generationSettings = this.GetGenerationSettings(Vector2.zero); return this.cachedTextGeneratorForLayout.GetPreferredWidth(this.m_Text, generationSettings) / this.pixelsPerUnit; } } // Token: 0x1700014F RID: 335 // (get) Token: 0x060004C2 RID: 1218 RVA: 0x00019F50 File Offset: 0x00018350 public virtual float flexibleWidth { get { return -1f; } } // Token: 0x17000150 RID: 336 // (get) Token: 0x060004C3 RID: 1219 RVA: 0x00019F6C File Offset: 0x0001836C public virtual float minHeight { get { return 0f; } } // Token: 0x17000151 RID: 337 // (get) Token: 0x060004C4 RID: 1220 RVA: 0x00019F88 File Offset: 0x00018388 public virtual float preferredHeight { get { TextGenerationSettings generationSettings = this.GetGenerationSettings(new Vector2(base.GetPixelAdjustedRect().size.x, 0f)); return this.cachedTextGeneratorForLayout.GetPreferredHeight(this.m_Text, generationSettings) / this.pixelsPerUnit; } } // Token: 0x17000152 RID: 338 // (get) Token: 0x060004C5 RID: 1221 RVA: 0x00019FE0 File Offset: 0x000183E0 public virtual float flexibleHeight { get { return -1f; } } // Token: 0x17000153 RID: 339 // (get) Token: 0x060004C6 RID: 1222 RVA: 0x00019FFC File Offset: 0x000183FC public virtual int layoutPriority { get { return 0; } } // Token: 0x04000242 RID: 578 [SerializeField] private FontData m_FontData = FontData.defaultFontData; // Token: 0x04000243 RID: 579 [TextArea(3, 10)] [SerializeField] protected string m_Text = string.Empty; // Token: 0x04000244 RID: 580 private TextGenerator m_TextCache; // Token: 0x04000245 RID: 581 private TextGenerator m_TextCacheForLayout; // Token: 0x04000246 RID: 582 protected static Material s_DefaultText = null; // Token: 0x04000247 RID: 583 [NonSerialized] protected bool m_DisableFontTextureRebuiltCallback = false; // Token: 0x04000248 RID: 584 private readonly UIVertex[] m_TempVerts = new UIVertex[4]; } }