using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace WildAttack { /// /// 游戏结束界面 /// public class GameOverPanel : MonoBehaviour { #region Members [SerializeField] Image img_gameOver; [SerializeField] Button btn_restart; [SerializeField] Button btn_back; [SerializeField] Text text_restart; [SerializeField] Text text_back; [SerializeField] Text text_highScoreTitle; [SerializeField] Text text_highScore; [SerializeField] Text text_currScoreTitle; [SerializeField] Text text_currScore; [SerializeField] Text text_endGame; #endregion #region Lifecycle // Start is called before the first frame update void Start() { RegisterEvent(); } void OnEnable() { SimulateMouseController.ins?.AddOpenLocker(this); } void OnDisable() { SimulateMouseController.ins?.RemoveOpenLocker(this); } #endregion #region ButtonClickEvent /// /// 注册btn监听 /// private void RegisterEvent() { btn_restart.onClick.AddListener(OnBtnRestartClick); btn_back.onClick.AddListener(OnBtnBackClick); } /// ///点击 不玩了, 退出 /// private void OnBtnBackClick() { //#if UNITY_EDITOR // UnityEditor.EditorApplication.isPlaying = false; //#else // Application.Quit(); //#endif AudioMgr.ins.PlayBtn(); //退出按钮时候上传一次分数 GameMananger.GetInstance().OnUploadScore(); UserGameAnalyse1.Instance.showResultView(() => { UnityEngine.SceneManagement.SceneManager.LoadScene("Home", UnityEngine.SceneManagement.LoadSceneMode.Single); }); } /// /// 重开按钮 /// private void OnBtnRestartClick() { AudioMgr.ins.PlayBtn(); // 重开设置 GameMananger.GetInstance().ResetMainCamera(); //GameMananger.GetInstance().ResetAim(); GameMananger.GetInstance().AddHp((int)GameModule.GetInstance().GetData("wallHp")); GameMananger.GetInstance().SetScore(0); // 重置enemys for (int i = EnemyManager.GetInstance().enemyList.Count - 1; i >= 0; i--) { EnemyManager.GetInstance().enemyList[i].ResetEnemy(); } //道具cd 关卡重置 EnemyPool.GetInstance().RecycleAll(); BalloonPool.GetInstance().RecycleAll(); FlotagePool.GetInstance().RecycleAll(); ProcessManager.GetInstance().RestartLevel(); UIManager.GetInstance().Restart(); } #endregion #region Functions public void ShowGameOverPanel(bool isWin) { //text_endGame.text = StringModule.GetInstance().GetData("endGame"); text_restart.text = StringModule.GetInstance().GetData("restart"); text_back.text = StringModule.GetInstance().GetData("back"); //text_process.text = $"{StringModule.GetInstance().GetData("wave")}:{(ProcessManager.GetInstance().CurrLevel > ProcessModule.GetInstance().processDataDic.Count ? ProcessModule.GetInstance().processDataDic.Count : ProcessManager.GetInstance().CurrLevel)} / {ProcessModule.GetInstance().processDataDic.Count}"; //text_score.text = $"{StringModule.GetInstance().GetData("score")}:{GameMananger.GetInstance().TotalScore}"; text_currScoreTitle.text = StringModule.GetInstance().GetData("score") + ":"; text_currScore.text = GameMananger.GetInstance().TotalScore.ToString(); float recordScore = 0; if (LoginMgr.myUserInfo.timeLimitGameScores.ContainsKey("WildAttack")) { recordScore = LoginMgr.myUserInfo.timeLimitGameScores["WildAttack"]; } if (GameMananger.GetInstance().TotalScore > recordScore) { recordScore = GameMananger.GetInstance().TotalScore; LoginMgr.myUserInfo.timeLimitGameScores["WildAttack"] = recordScore; LoginMgr.myUserInfo.Save(); } text_highScoreTitle.text = StringModule.GetInstance().GetData("highScore") + ":"; text_highScore.text = recordScore.ToString(); GameOverInterface.OnGameOver(GameMgr.gameType); } #endregion } }