GameOverPanel.cs 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  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. SimulateMouseController.ins?.AddOpenLocker("NotGame");
  30. RegisterEvent();
  31. }
  32. #endregion
  33. #region ButtonClickEvent
  34. /// <summary>
  35. /// 注册btn监听
  36. /// </summary>
  37. private void RegisterEvent()
  38. {
  39. btn_restart.onClick.AddListener(OnBtnRestartClick);
  40. btn_back.onClick.AddListener(OnBtnBackClick);
  41. }
  42. /// <summary>
  43. /// 退出
  44. /// </summary>
  45. private void OnBtnBackClick()
  46. {
  47. //#if UNITY_EDITOR
  48. // UnityEditor.EditorApplication.isPlaying = false;
  49. //#else
  50. // Application.Quit();
  51. //#endif
  52. AudioMgr.ins.PlayBtn();
  53. UnityEngine.SceneManagement.SceneManager.LoadScene("Home", UnityEngine.SceneManagement.LoadSceneMode.Single);
  54. }
  55. /// <summary>
  56. /// 重开按钮
  57. /// </summary>
  58. private void OnBtnRestartClick()
  59. {
  60. AudioMgr.ins.PlayBtn();
  61. // 重开设置
  62. GameMananger.GetInstance().ResetMainCamera();
  63. //GameMananger.GetInstance().ResetAim();
  64. GameMananger.GetInstance().AddHp((int)GameModule.GetInstance().GetData("wallHp"));
  65. GameMananger.GetInstance().SetScore(0);
  66. // 重置enemys
  67. for (int i = EnemyManager.GetInstance().enemyList.Count - 1; i >= 0; i--)
  68. {
  69. EnemyManager.GetInstance().enemyList[i].ResetEnemy();
  70. }
  71. //道具cd 关卡重置
  72. EnemyPool.GetInstance().RecycleAll();
  73. BalloonPool.GetInstance().RecycleAll();
  74. FlotagePool.GetInstance().RecycleAll();
  75. ProcessManager.GetInstance().RestartLevel();
  76. UIManager.GetInstance().Restart();
  77. }
  78. #endregion
  79. #region Functions
  80. public void ShowGameOverPanel(bool isWin)
  81. {
  82. //text_endGame.text = StringModule.GetInstance().GetData("endGame");
  83. text_restart.text = StringModule.GetInstance().GetData("restart");
  84. text_back.text = StringModule.GetInstance().GetData("back");
  85. //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}";
  86. //text_score.text = $"{StringModule.GetInstance().GetData("score")}:{GameMananger.GetInstance().TotalScore}";
  87. text_currScoreTitle.text = StringModule.GetInstance().GetData("score") + ":";
  88. text_currScore.text = GameMananger.GetInstance().TotalScore.ToString();
  89. if (GameMananger.GetInstance().TotalScore > LoginMgr.myUserInfo.wildAttackRecord)
  90. {
  91. LoginMgr.myUserInfo.wildAttackRecord = GameMananger.GetInstance().TotalScore;
  92. LoginMgr.myUserInfo.Save();
  93. }
  94. text_highScoreTitle.text = StringModule.GetInstance().GetData("highScore") + ":";
  95. text_highScore.text = LoginMgr.myUserInfo.wildAttackRecord.ToString();
  96. }
  97. #endregion
  98. }
  99. }