10.提示界面

10.开始场景-提示界面


10.1 拼面板

查看提示界面示例图

把canvas预制体拉一个出来,创建提示界面对象,面板中创建背景图,标题,确定按钮,提示信息文本。


10.2 功能制作

创建TipPanel脚本,继承BasePanel面板基类,挂载到TipPanel提示界面预制体上,注意脚本名要和界面名一样。定义提示文本和确定按钮变量。Init中给确定按钮添加隐藏提示界面的监听。提供给外部一个改变提示信息文本的方法,外部传入字符串赋值给提示信息文本。

public class TipPanel : BasePanel
{
    // 提示信息文本
    public Text txtInfo;

    // 确定按钮
    public Button btnSure;

    public override void Init()
    {
        btnSure.onClick.AddListener(() =>
        {
            UIManager.Instance.HidePanel<TipPanel>(); // 点击确定按钮时隐藏提示面板
        });
    }

    /// <summary>
    /// 改变提示内容的方法
    /// </summary>
    /// <param name="str">新的提示内容</param>
    public void ChangeInfo(string str)
    {
        txtInfo.text = str; // 将提示信息文本的内容设置为参数提供的新内容
    }
}

在选角面板的解锁按钮监听事件中,购买成功失败都显示对应的提示面板,显示对应的文本

btnUnLock.onClick.AddListener(() =>
{
    //点击解锁按钮的逻辑
    PlayerData data = GameDataMgr.Instance.playerData;
    //当有钱时
    if(data.haveMoney >= nowRoleData.lockMoney)
    {
        //购买逻辑
        //减去花费
        data.haveMoney -= nowRoleData.lockMoney;
        //更新界面显示
        txtMoney.text = data.haveMoney.ToString();
        //记录购买的id
        data.buyHero.Add(nowRoleData.id);
        //保存数据
        GameDataMgr.Instance.SavePlayerData();

        //更新解锁按钮
        UpdateLockBtn();

        //提示面板 显示购买成功
        UIManager.Instance.ShowPanel<TipPanel>().ChangeInfo("购买成功");
    }
    else
    {
        //提示面板 显示 金钱不足
        UIManager.Instance.ShowPanel<TipPanel>().ChangeInfo("金钱不足");
    }
});

把提示界面预制体放到Resources文件夹做成预制体


10.3 代码

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

public class TipPanel : BasePanel
{
    public Text txtInfo; // 提示信息文本

    public Button btnSure; // 确定按钮

    public override void Init()
    {
        btnSure.onClick.AddListener(() =>
        {
            UIManager.Instance.HidePanel<TipPanel>(); // 点击确定按钮时隐藏提示面板
        });
    }

    /// <summary>
    /// 改变提示内容的方法
    /// </summary>
    /// <param name="str">新的提示内容</param>
    public void ChangeInfo(string str)
    {
        txtInfo.text = str; // 将提示信息文本的内容设置为参数提供的新内容
    }
}


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

×

喜欢就点赞,疼爱就打赏