5.提示面板

5.提示面板


5.1 拼面板

创建一个Panel取名为TipPanel作为提示面板

创建一个名为 TipPanel 的 Panel 作为提示面板。在 TipPanel 下创建一个 image 作为面板的拖拽提示面板示意图,并修改透明度对着来拼。给提示面板添加 CanvasGroup 组件用于淡入淡出效果。

创建背景图,提示框图,确定按钮,文本等

创建背景图、提示框图、确定按钮、文本等元素。注意设置九宫格和适配,一般文字在更高的层级,为 DrawCall 做准备。


5.2 功能制作

提示面板类图

创建提示面板TipPanel 脚本,继承面板基类,注意名字要和场景中的对象一致,因为UI管理器是根据这个名字进行管理的。挂载到场景中的提示面板上。声明了两个成员变量:btnSure(确定按钮)和txtInfo(提示文字),在外部关联。声明了两个成员变量:btnSure(确定按钮)和txtInfo(提示文字)。在Init()方法中,初始化了按钮的点击事件监听。当点击确定按钮时,调用UIManager的HidePanel方法隐藏TipPanel面板。

public class TipPanel : BasePanel
{
    //确定按钮
    public Button btnSure;
    //提示文字
    public Text txtInfo;
    
    public override void Init()
    {
        //初始化 按钮事件监听
        btnSure.onClick.AddListener(() => {
            //隐藏自己
            UIManager.Instance.HidePanel<TipPanel>();
        });
    }
}

定义用于改变提示内容ChangeInfo方法,可以由外部调用。接收一个字符串参数info,将其赋值给txtInfo的text属性,以更新提示文字的显示

/// <summary>
/// 提示内容改变 提供给外部使用
/// </summary>
/// <param name="info">提示内容</param>
public void ChangeInfo(string info)
{
    txtInfo.text = info;
}

把提示面板拖入Resources/UI文件夹下做成预制体

场景中创建一个Main空物体,并挂载一个新创建的Main脚本。Main脚本中添加暂时测试提示面板的逻辑。

public class Main : MonoBehaviour
{
    void Start()
    {
        //显示 提示面板
        TipPanel tipPanel = UIManager.Instance.ShowPanel<TipPanel>();
        tipPanel.ChangeInfo("测试提示内容改变");
    }
}

5.3 代码

TipPanel

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class TipPanel : BasePanel
{
    //确定按钮
    public Button btnSure;
    //提示文字
    public Text txtInfo;

    public override void Init()
    {
        //初始化 按钮事件监听
        btnSure.onClick.AddListener(() => {
            //隐藏自己
            UIManager.Instance.HidePanel<TipPanel>();
        });
    }

    /// <summary>
    /// 提示内容改变 提供给外部使用
    /// </summary>
    /// <param name="info">提示内容</param>
    public void ChangeInfo(string info)
    {
        txtInfo.text = info;
    }
}

Main

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Main : MonoBehaviour
{
    void Start()
    {
        //显示 提示面板
        TipPanel tipPanel = UIManager.Instance.ShowPanel<TipPanel>();
        tipPanel.ChangeInfo("测试提示内容改变");
    }
}


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com

×

喜欢就点赞,疼爱就打赏