| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 | 
							- using UnityEngine;
 
- using System.Collections;
 
- namespace TMPro.Examples
 
- {
 
-     public class TextConsoleSimulator : MonoBehaviour
 
-     {
 
-         private TMP_Text m_TextComponent;
 
-         private bool hasTextChanged;
 
-         void Awake()
 
-         {
 
-             m_TextComponent = gameObject.GetComponent<TMP_Text>();
 
-         }
 
-         void Start()
 
-         {
 
-             StartCoroutine(RevealCharacters(m_TextComponent));
 
-             //StartCoroutine(RevealWords(m_TextComponent));
 
-         }
 
-         void OnEnable()
 
-         {
 
-             // Subscribe to event fired when text object has been regenerated.
 
-             TMPro_EventManager.TEXT_CHANGED_EVENT.Add(ON_TEXT_CHANGED);
 
-         }
 
-         void OnDisable()
 
-         {
 
-             TMPro_EventManager.TEXT_CHANGED_EVENT.Remove(ON_TEXT_CHANGED);
 
-         }
 
-         // Event received when the text object has changed.
 
-         void ON_TEXT_CHANGED(Object obj)
 
-         {
 
-             hasTextChanged = true;
 
-         }
 
-         /// <summary>
 
-         /// Method revealing the text one character at a time.
 
-         /// </summary>
 
-         /// <returns></returns>
 
-         IEnumerator RevealCharacters(TMP_Text textComponent)
 
-         {
 
-             textComponent.ForceMeshUpdate();
 
-             TMP_TextInfo textInfo = textComponent.textInfo;
 
-             int totalVisibleCharacters = textInfo.characterCount; // Get # of Visible Character in text object
 
-             int visibleCount = 0;
 
-             while (true)
 
-             {
 
-                 if (hasTextChanged)
 
-                 {
 
-                     totalVisibleCharacters = textInfo.characterCount; // Update visible character count.
 
-                     hasTextChanged = false; 
 
-                 }
 
-                 if (visibleCount > totalVisibleCharacters)
 
-                 {
 
-                     yield return new WaitForSeconds(1.0f);
 
-                     visibleCount = 0;
 
-                 }
 
-                 textComponent.maxVisibleCharacters = visibleCount; // How many characters should TextMeshPro display?
 
-                 visibleCount += 1;
 
-                 yield return null;
 
-             }
 
-         }
 
-         /// <summary>
 
-         /// Method revealing the text one word at a time.
 
-         /// </summary>
 
-         /// <returns></returns>
 
-         IEnumerator RevealWords(TMP_Text textComponent)
 
-         {
 
-             textComponent.ForceMeshUpdate();
 
-             int totalWordCount = textComponent.textInfo.wordCount;
 
-             int totalVisibleCharacters = textComponent.textInfo.characterCount; // Get # of Visible Character in text object
 
-             int counter = 0;
 
-             int currentWord = 0;
 
-             int visibleCount = 0;
 
-             while (true)
 
-             {
 
-                 currentWord = counter % (totalWordCount + 1);
 
-                 // Get last character index for the current word.
 
-                 if (currentWord == 0) // Display no words.
 
-                     visibleCount = 0;
 
-                 else if (currentWord < totalWordCount) // Display all other words with the exception of the last one.
 
-                     visibleCount = textComponent.textInfo.wordInfo[currentWord - 1].lastCharacterIndex + 1;
 
-                 else if (currentWord == totalWordCount) // Display last word and all remaining characters.
 
-                     visibleCount = totalVisibleCharacters;
 
-                 textComponent.maxVisibleCharacters = visibleCount; // How many characters should TextMeshPro display?
 
-                 // Once the last character has been revealed, wait 1.0 second and start over.
 
-                 if (visibleCount >= totalVisibleCharacters)
 
-                 {
 
-                     yield return new WaitForSeconds(1.0f);
 
-                 }
 
-                 counter += 1;
 
-                 yield return new WaitForSeconds(0.1f);
 
-             }
 
-         }
 
-     }
 
- }
 
 
  |