30.失败界面

  1. 30.失败界面
    1. 30.1 知识点
      1. 失败界面需求
      2. 拼接失败面板
      3. 创建失败面板脚本
      4. 玩家脚本中,玩家死亡时打开失败面板
      5. 优化开始场景鼠标锁定
    2. 30.2 知识点代码

30.失败界面


30.1 知识点

失败界面需求



明确失败界面需要包含的内容和功能,例如返回开始场景按钮和重新开始游戏按钮。

拼接失败面板


在游戏界面中创建一个失败面板,包括返回开始场景按钮和重新开始游戏按钮等元素。

创建失败面板脚本

// 失败面板
public class LosePanel : BasePanel<LosePanel>
{
    public CustomGUIButton btnBack;
    public CustomGUIButton btnGoOn;
        
    void Start()
    {
        btnBack.clickEvent += () =>
        {
            // 取消暂停
            Time.timeScale = 1;
            // 切换场景到开始场景
            SceneManager.LoadScene("BeginScene");
        };
        
        btnGoOn.clickEvent += () =>
        {
            // 取消暂停
            Time.timeScale = 1;
            // 再次切换到游戏场景
            SceneManager.LoadScene("GameScene");
        };
        
        // 一开始隐藏自己
        HideMe();
    }
}

这个脚本用于控制失败界面的逻辑,当返回开始场景按钮或重新开始游戏按钮被点击时,取消游戏暂停并根据点击按钮的不同切换到对应的场景。

玩家脚本中,玩家死亡时打开失败面板

public override void Dead()
{
    // 处理失败逻辑,显示失败面板
    Time.timeScale = 0;
    LosePanel.Instance.ShowMe();
}

在玩家死亡时触发该函数,游戏暂停并显示失败面板。

优化开始场景鼠标锁定

// 让鼠标锁定在游戏窗口内
Cursor.lockState = CursorLockMode.Confined;

这段代码应该在开始场景加载时执行,确保鼠标锁定在游戏窗口内,以便玩家更好地控制坦克的头部转向。


30.2 知识点代码

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

//失败面板
public class LosePanel : BasePanel<LosePanel>
{
    public CustomGUIButton btnBack;
    public CustomGUIButton btnGoOn;
    
    void Start()
    {
        btnBack.clickEvent += () =>
        {
            //取消暂停
            Time.timeScale = 1;
            //切换场景
            SceneManager.LoadScene("BeginScene");
        };

        btnGoOn.clickEvent += () =>
        {
            //取消暂停
            Time.timeScale = 1;
            //再次切换到 游戏场景 就可以 达到所有内容重新加载 重头开始的 目的
            SceneManager.LoadScene("GameScene");
        };
        //一开始 隐藏自己
        HideMe();
    }

}


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

×

喜欢就点赞,疼爱就打赏