GameOverPanel.cs 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using UnityEngine;
  5. using UnityEngine.UI;
  6. namespace WildAttack
  7. {
  8. /// <summary>
  9. /// 游戏结束界面
  10. /// </summary>
  11. public class GameOverPanel : MonoBehaviour
  12. {
  13. #region Members
  14. [SerializeField] Image img_gameOver;
  15. [SerializeField] Button btn_restart;
  16. [SerializeField] Button btn_back;
  17. [SerializeField] Text text_restart;
  18. [SerializeField] Text text_back;
  19. [SerializeField] Text text_highScoreTitle;
  20. [SerializeField] Text text_highScore;
  21. [SerializeField] Text text_currScoreTitle;
  22. [SerializeField] Text text_currScore;
  23. [SerializeField] Text text_endGame;
  24. #endregion
  25. #region Lifecycle
  26. // Start is called before the first frame update
  27. void Start()
  28. {
  29. RegisterEvent();
  30. }
  31. void OnEnable()
  32. {
  33. SimulateMouseController.ins?.AddOpenLocker(this);
  34. }
  35. void OnDisable()
  36. {
  37. SimulateMouseController.ins?.RemoveOpenLocker(this);
  38. }
  39. #endregion
  40. #region ButtonClickEvent
  41. /// <summary>
  42. /// 注册btn监听
  43. /// </summary>
  44. private void RegisterEvent()
  45. {
  46. btn_restart.onClick.AddListener(OnBtnRestartClick);
  47. btn_back.onClick.AddListener(OnBtnBackClick);
  48. }
  49. /// <summary>
  50. /// 退出
  51. /// </summary>
  52. private void OnBtnBackClick()
  53. {
  54. //#if UNITY_EDITOR
  55. // UnityEditor.EditorApplication.isPlaying = false;
  56. //#else
  57. // Application.Quit();
  58. //#endif
  59. AudioMgr.ins.PlayBtn();
  60. UnityEngine.SceneManagement.SceneManager.LoadScene("Home", UnityEngine.SceneManagement.LoadSceneMode.Single);
  61. }
  62. /// <summary>
  63. /// 重开按钮
  64. /// </summary>
  65. private void OnBtnRestartClick()
  66. {
  67. AudioMgr.ins.PlayBtn();
  68. // 重开设置
  69. GameMananger.GetInstance().ResetMainCamera();
  70. //GameMananger.GetInstance().ResetAim();
  71. GameMananger.GetInstance().AddHp((int)GameModule.GetInstance().GetData("wallHp"));
  72. GameMananger.GetInstance().SetScore(0);
  73. // 重置enemys
  74. for (int i = EnemyManager.GetInstance().enemyList.Count - 1; i >= 0; i--)
  75. {
  76. EnemyManager.GetInstance().enemyList[i].ResetEnemy();
  77. }
  78. //道具cd 关卡重置
  79. EnemyPool.GetInstance().RecycleAll();
  80. BalloonPool.GetInstance().RecycleAll();
  81. FlotagePool.GetInstance().RecycleAll();
  82. ProcessManager.GetInstance().RestartLevel();
  83. UIManager.GetInstance().Restart();
  84. }
  85. #endregion
  86. #region Functions
  87. public void ShowGameOverPanel(bool isWin)
  88. {
  89. //text_endGame.text = StringModule.GetInstance().GetData("endGame");
  90. text_restart.text = StringModule.GetInstance().GetData("restart");
  91. text_back.text = StringModule.GetInstance().GetData("back");
  92. //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}";
  93. //text_score.text = $"{StringModule.GetInstance().GetData("score")}:{GameMananger.GetInstance().TotalScore}";
  94. text_currScoreTitle.text = StringModule.GetInstance().GetData("score") + ":";
  95. text_currScore.text = GameMananger.GetInstance().TotalScore.ToString();
  96. float recordScore = 0;
  97. if (LoginMgr.myUserInfo.timeLimitGameScores.ContainsKey("WildAttack"))
  98. {
  99. recordScore = LoginMgr.myUserInfo.timeLimitGameScores["WildAttack"];
  100. }
  101. if (GameMananger.GetInstance().TotalScore > recordScore)
  102. {
  103. recordScore = GameMananger.GetInstance().TotalScore;
  104. LoginMgr.myUserInfo.timeLimitGameScores["WildAttack"] = recordScore;
  105. LoginMgr.myUserInfo.Save();
  106. }
  107. text_highScoreTitle.text = StringModule.GetInstance().GetData("highScore") + ":";
  108. text_highScore.text = recordScore.ToString();
  109. }
  110. #endregion
  111. }
  112. }