using UnityEngine; using System.Collections; using UnityEngine.UI; public class Typewriter : MonoBehaviour { public string con; Text _conText; Text _Context{ get{ if (_conText == null) { _conText = GetComponent<Text> (); } return _conText; } } public float speed = 10f; public bool isOnStart; public System.Action ac; public bool isWriting; // Use this for initialization void Start () { if (isOnStart) { StartCoroutine (StartWrite ()); } } public void StopAll() { StopAllCoroutines(); } public void ToPrinter(string conText, System.Action ac = null) { this.con = conText; this.ac = ac; StartCoroutine (StartWrite()); } IEnumerator StartWrite() { isWriting = true; int curPos = 0; int length = con.Length; while (curPos < length) { curPos += 1; _Context.text = con.Substring (0, curPos); yield return new WaitForSeconds (1/speed); } isWriting = false; if (ac != null) { ac (); } } }