using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using System; namespace XWFramework.Tools { public class DialoguePlayer { public Action PlayFinish; public const float defaultSpeed = 0.05f;//每个字播放速度 public IEnumerator IETextPlayer(string content, Action setText,Action finished,float playSpeed = defaultSpeed) { PlayFinish = finished; int len = content.Length; for (int i = 0; i <= len; i++) { yield return new WaitForSeconds(playSpeed); var str = content.Substring(0, i); setText?.Invoke(str); } yield return new WaitForSeconds(0.1f); Finished(); } public IEnumerator IETextPlayer(string content, Action setText,float playSpeed = defaultSpeed) { int len = content.Length; for (int i = 0; i <= len; i++) { yield return new WaitForSeconds(playSpeed); var str = content.Substring(0, i); setText?.Invoke(str); } yield return new WaitForSeconds(0.1f); } public void Finished() { PlayFinish?.Invoke(); PlayFinish = null; } } }