前言
废话不多说,直接上代码
public class TypewriterEffect : MonoBehaviour
{
/// <summary>
/// 间隔时间
/// </summary>
private float letterPause = 0.2f;
public AudioClip clip;
private AudioSource source;
private bool isPrinting = true; // 是否正在打印文字
/// <summary>
/// 暂存中间值
/// </summary>
private string word;
/// <summary>
/// 要显示的内容
/// </summary>
private string text;
void Start()
{
text = GetComponent<Text>().text;
source = GetComponent<AudioSource>();
word = text;
text = "";
StartCoroutine("TypeText");
}
public void stop()
{
StopCoroutine("TypeText");
GetComponent<Text>().text = word;
}
/// 打字机效果
/// </summary>
/// <returns></returns>
private IEnumerator TypeText()
{
foreach (char letter in word.ToCharArray())
{
if (!isPrinting)
yield break;
text += letter;
GetComponent<Text>().text = text;
if (clip)
{
source.PlayOneShot(clip);
}
yield return new WaitForSeconds(letterPause);
}
isPrinting = false;
source.Stop();
}
}
总结
clip可以随意放一个打字机的音效,或者人物说话声音