如图创建UI以及挂载以下脚本:
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
public class DialogueBox : MonoBehaviour
{
public Text nameText;
public Text contentText;
public float typingSpeed = 0.1f;
private string currentContent;
private Coroutine typingCoroutine;
public void Say1()
{
ShowDialogue("小明:", "你好啊!吉吉");
}
public void Say2()
{
ShowDialogue("喆:", "你好啊!");
}
public void Say3()
{
ShowDialogue("小明:", "啥时候打永劫呢?");
}
public void Say4()
{
ShowDialogue("喆:", "今晚单挑打爆你!");
}
public void Say5()
{
ShowDialogue("小明:", "嘿呦!让你常常我的厉害!");
}
public void ShowDialogue(string name, string content)
{
nameText.text = name;
currentContent = content;
contentText.text = "";
if (typingCoroutine != null)
{
StopCoroutine(typingCoroutine);
}
typingCoroutine = StartCoroutine(TypeContent());
}
IEnumerator TypeContent()
{
foreach (char c in currentContent)
{
contentText.text += c;
yield return new WaitForSeconds(typingSpeed);
}
}
}
有了代码以后依次调用方法即可。
我用的是Timeline的事件轨道: