15.结束界面

15.游戏场景-结束界面


15.1 知识点

查看结束面板样式和所需要的控件

创建结束面板控件,添加半透明背景,背景,标题,坚持的时间,名字标题,名字输入框这几个控件。检查分辨率自适应和DrawCall。

创建GameOverPanel 脚本,继承基类面板。创建时间标签,姓名输入框,确定按钮变量,挂载到退出面板控件并关联对应控件。创建游戏结束时间坚持的时间的变量。重写显示面板方法中,从游戏面板脚本里得到游戏结束时检测的时间,设置到时间标签Label中。重写初始化方法,初始化的时候给确认按钮添加监听,调用游戏数据管理器添加排行榜数据的接口,传入姓名输入框的值和坚持的时间,切回开始界面。

public class GameOverPanel : BasePanel<GameOverPanel>
{
    public UILabel labTime; // 时间标签
    public UIInput inputName; // 姓名输入框
    public UIButton btnSure; // 确定按钮

    private int endTime; // 游戏结束时间

    public override void Init()
    {
        btnSure.onClick.Add(new EventDelegate(() =>
        {
            //要把当前玩家的成绩 保存到排行榜当中
            GameDataMgr.Instance.AddRankData(inputName.value, endTime); // 保存成绩
            //切回开始界面 重新开始游戏
            SceneManager.LoadScene("BeginScene"); // 加载开始场景
        }));

        HideMe(); // 初始化时隐藏面板
    }

    public override void ShowMe()
    {
        base.ShowMe();
        //显示该面板时 就应该去记录 当前的时间
        //存储的是一个秒数
        endTime = (int)GamePanel.Instance.nowTime; // 记录游戏结束时间
        //从游戏界面得到 显示的 当前时间
        labTime.text = GamePanel.Instance.labTime.text; // 更新时间标签文本
    }
}

可以在GamePanel脚本中用延迟函数添加测试代码,测试6秒后显示游戏结束面板,看看有没有问题。测试完删除代码。


15.2 知识点代码

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

public class GameOverPanel : BasePanel<GameOverPanel>
{
    public UILabel labTime; // 时间标签
    public UIInput inputName; // 姓名输入框
    public UIButton btnSure; // 确定按钮

    private int endTime; // 游戏结束时间
    public override void Init()
    {
        btnSure.onClick.Add(new EventDelegate(() =>
        {
            //要把当前玩家的成绩 保存到排行榜当中
            GameDataMgr.Instance.AddRankData(inputName.value, endTime); // 保存成绩
            //切回开始界面 重新开始游戏
            SceneManager.LoadScene("BeginScene"); // 加载开始场景
        }));

        HideMe(); // 初始化时隐藏面板
    }

    public override void ShowMe()
    {
        base.ShowMe();
        //显示该面板时 就应该去记录 当前的时间
        //存储的是一个秒数
        endTime = (int)GamePanel.Instance.nowTime; // 记录游戏结束时间
        //从游戏界面得到 显示的 当前时间
        labTime.text = GamePanel.Instance.labTime.text; // 更新时间标签文本
    }
}


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

×

喜欢就点赞,疼爱就打赏