Unity 简单角色对话UI脚本的编写(新版UI组件)

简单角色对话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中提前设置添加对话内容,将脚本挂载到对话组件上。

相关推荐
灵感菇_5 小时前
Flutter Riverpod 完整教程:从入门到实战
前端·flutter·ui·状态管理
世洋Blog6 小时前
Unity中图片的内存中占用大小、AB占用大小、内存形式
unity·游戏引擎
熬夜敲代码的小N7 小时前
Unity热更新技术详解
unity·游戏引擎
2022.11.7始学前端7 小时前
n8n第七节 只提醒重要的待办
前端·javascript·ui·n8n
尤老师FPGA9 小时前
使用ZYNQ芯片和LVGL框架实现用户高刷新UI设计系列教程(第四十讲)
ui
成富9 小时前
Chat Agent UI,类似 ChatGPT 的聊天界面,Spring AI 应用的测试工具
java·人工智能·spring·ui·chatgpt
小a彤11 小时前
Flutter UI 美化与适配技巧详解
flutter·ui
测试人社区—667914 小时前
Jenkins持续测试集成
运维·人工智能·学习·flutter·ui·自动化·jenkins
地狱为王15 小时前
Cesium for Unity 去除Cesium Logo
unity·游戏引擎·cesium
BuHuaX15 小时前
Lua入门
开发语言·unity·junit·c#·游戏引擎·lua