ModeSelectView.cs 5.3 KB

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