Unity3D: 自制提示框消息 (Toast)

前言:
Unity3D 自制类似 android Toast 提示框消息 显示。

首先,需要自定义一个 文本UI 对象 预制体,再在需要的时候,加载显示 (0^◇^0)/
根据字符串 参数传递,显示提示消息

     // 提示 消息
        public void onTips(string tips_str)
        {
            GameObject toast = Resources.Load("XXX") as GameObject; // 加载预制体
            GameObject m_toast = Instantiate(toast, null, true);    // 对象初始化
            m_toast.transform.parent = home.transform;              // 附加到父节点(需要显示的UI下)
            m_toast.transform.localScale = Vector3.one;
            m_toast.transform.localPosition = Vector3.zero;
            Text tips = m_toast.transform.FindChild("lab_toast").GetComponent();
            tips.text = tips_str;
            Destroy(m_toast, 2); // 2秒后 销毁
        }

更新 (2017/9/22):

根据 字符串长度 自适配窗体大小,绑定当前UI父节点:

        // arg0: 提示信息
        // arg1: 提示框体父节点
        public void ShowToastUI(string str, Transform trans)
        {
            GameObject toast = Resources.Load("XXX") as GameObject; // 加载预制体
            GameObject m_toast = Instantiate(toast, null, true);    // 对象初始化
            m_toast.transform.parent = trans;
            m_toast.transform.localScale = Vector3.one;
            m_toast.transform.localPosition = Vector3.zero;
            RectTransform transform = m_toast.transform.GetComponent();
            Text tips = m_toast.transform.FindChild("lab_toast").GetComponent();
            tips.text = str; 
            // 根据字符长度,适配窗体大小
            // arg0: 字符串长度*文本字体大小,再加上边距为提示窗体的宽度
            // arg1: 提示窗体高度 45 (可根据自己需求做适当修改)
            transform.sizeDelta = new Vector2(str.Length * tips.fontSize + 35, 45);

            GameObject.Destroy(m_toast, 2);
        }

嗯,先介绍到这里,希望对你有帮助(~ ̄▽ ̄)~

你可能感兴趣的:(Unity-3D)