ModeSelectView.cs 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityEngine.SceneManagement;
  5. using UnityEngine.UI;
  6. public class ModeSelectView : JCUnityLib.ViewBase
  7. {
  8. public static ModeSelectView ins;
  9. public bool isShowButton = false;
  10. [SerializeField] List<Button> buttons;
  11. private void Awake()
  12. {
  13. ins = this;
  14. }
  15. // Start is called before the first frame update
  16. void Start()
  17. {
  18. }
  19. public void InitButtons() {
  20. if (isShowButton)
  21. {
  22. buttons[3].gameObject.SetActive(true);
  23. }
  24. else
  25. {
  26. Destroy(buttons[3].gameObject);
  27. buttons.RemoveAt(buttons.Count - 1);
  28. }
  29. for (int i = 0; i < buttons.Count; i++)
  30. {
  31. int temp = i;
  32. buttons[i].onClick.AddListener(() => {
  33. AudioMgr.ins.PlayBtn();
  34. OnChangeButton(temp);
  35. });
  36. if (GameMgr.judgmentGameType != 1 && i == 3)
  37. {
  38. //目前只有奥运射箭和塔防有双人模式,先显示奥运射箭
  39. buttons[i].gameObject.SetActive(false);
  40. }
  41. }
  42. }
  43. void OnDestroy()
  44. {
  45. if (ins == this) ins = null;
  46. }
  47. void OnChangeButton(int index)
  48. {
  49. bool _selected = false;
  50. string gotoName = "";
  51. for (int i = 0; i < buttons.Count; i++)
  52. {
  53. Button _button = buttons[i];
  54. if (index == i)
  55. {
  56. _button.GetComponent<ModeSelectView_Button>().OnSetButtonState(true);
  57. _selected = true;
  58. gotoName = _button.name;
  59. }
  60. else
  61. {
  62. _button.GetComponent<ModeSelectView_Button>().OnSetButtonState(false);
  63. }
  64. }
  65. if (_selected)
  66. {
  67. //进入选中的页面
  68. AudioMgr.ins.PlayBtn();
  69. GoToLocalByName(gotoName);
  70. }
  71. }
  72. public void OnChangeButtonState(int index)
  73. {
  74. for (int i = 0; i < buttons.Count; i++)
  75. {
  76. Button _button = buttons[i];
  77. if (index == i)
  78. {
  79. _button.GetComponent<ModeSelectView_Button>().OnSetButtonState(true);
  80. }
  81. else
  82. {
  83. _button.GetComponent<ModeSelectView_Button>().OnSetButtonState(false);
  84. }
  85. }
  86. }
  87. public void GoToLocalByName(string _gotoName)
  88. {
  89. switch (_gotoName)
  90. {
  91. case "SINGLE_PLYAER": //本地游戏(单人模式)
  92. GlobalDataTemp.pkMatchType = PKMatchType.None;
  93. if (GameMgr.judgmentGameType == 1)
  94. {
  95. //限时射箭
  96. GlobalData.pkMatchType = PKMatchType.None;
  97. GameMgr.gameType = 1;
  98. SceneManager.LoadScene("Game", LoadSceneMode.Single);
  99. }
  100. else
  101. {
  102. //打野鸡,打野兔,打野狼
  103. GameMgr.gameType = GameMgr.judgmentGameType;
  104. SceneManager.LoadScene("GameChallenge", LoadSceneMode.Single);
  105. }
  106. break;
  107. case "PLAY_LOCALLY": //本地对战
  108. Debug.Log("触发本地对战:PLAY_LOCALLY");
  109. GlobalDataTemp.pkMatchType = PKMatchType.LocalPK;
  110. ViewMgr.Instance.ShowView<RoleSelectView>();
  111. break;
  112. case "PLAY_GLOBALLY": //联网
  113. Debug.Log("触发联网:PLAY_GLOBALLY");
  114. GlobalDataTemp.pkMatchType = PKMatchType.OnlinePK;
  115. //ViewMgr.Instance.ShowView<PKGameOptionView>();
  116. if (GameMgr.judgmentGameType == 1)
  117. {
  118. //射箭
  119. //GlobalDataTemp.pkMatchType = PKMatchType.OnlinePK;
  120. GlobalDataTemp.matchGameType = 9;
  121. ViewMgr.Instance.ShowView<PKMatchView>();
  122. }
  123. else
  124. {
  125. //打野鸡,打野兔,打野狼
  126. int newGameType = 0;
  127. if (GameMgr.judgmentGameType == 3) newGameType = 10;
  128. else if (GameMgr.judgmentGameType == 4) newGameType = 11;
  129. else if (GameMgr.judgmentGameType == 5) newGameType = 12;
  130. GlobalDataTemp.matchGameType = newGameType;
  131. ViewMgr.Instance.ShowView<PKMatchView>();
  132. }
  133. break;
  134. case "DOUBLE_PLYAER": //双人游戏,目前包括(奥运射箭,塔防)
  135. Debug.Log("DOUBLE_PLYAER");
  136. SceneManager.LoadScene("GameDouble", LoadSceneMode.Single);
  137. break;
  138. default:
  139. break;
  140. }
  141. }
  142. public void OnClick_Back()
  143. {
  144. AudioMgr.ins.PlayBtn();
  145. ViewMgr.Instance.DestroyView<ModeSelectView>();
  146. }
  147. }