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