简单角色对话UI脚本的编写
新建UI,里边有两个文本组件一个按钮组件,一个展示名称,一个展示对话内容,按钮组件负责展示下一句对话。
csharp
public class DialogueUI : MonoBehaviour
{
private TextMeshProUGUI nameTexe;//获取名称的Text组件
private TextMeshProUGUI descriptionTexe; //获取内容的Text组件
private Button resumeButton;//继续对话的按钮
public List<string> contentlist;//对话列表
private int contentIndex = 0;//对话数组
private void Start()
{
//获取组件
nameTexe = transform.Find("NameText").GetComponent<TextMeshProUGUI>();
descriptionTexe= transform.Find("ContentText").GetComponent<TextMeshProUGUI>();
resumeButton = transform.Find("ResumeButton").GetComponent<Button>();
resumeButton.onClick.AddListener(this.OnContinueButtonClick);
descriptionTexe.text = contentlist[0];
}
public void Show()
{
gameObject.SetActive(true);//显示对话框
}
public void Show(string name, string[] content)//调用方法获得对话
{
nameTexe.text = name;
contentlist=new List<string>();
contentlist.AddRange(content);
descriptionTexe.text = contentlist[0];
}
public void Hide() //关闭对话
{
gameObject.SetActive(false);
}
private void OnContinueButtonClick()
{
//调用对话列表,如果没有对话,窗口关闭
contentIndex++;
if (contentIndex >= contentlist.Count)
{
Hide();return;
}
descriptionTexe.text = contentlist[contentIndex];
}
}
需要在U3D中提前设置添加对话内容,将脚本挂载到对话组件上。