| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215 |
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEngine.SceneManagement;
- using UnityEngine.UI;
- public class ModeSelectView : JCUnityLib.ViewBase
- {
- public static ModeSelectView ins;
- public bool isShowButton { get; set; } = false;
- [SerializeField]
- List<Button> allButtons;
- List<Button> buttons = new List<Button>();
- private void Awake()
- {
- ins = this;
- }
- // Start is called before the first frame update
- void Start()
- {
- if (CommonConfig.StandaloneMode)
- {
- buttons.Add(allButtons[0]);
- buttons.Add(allButtons[1]);
- }
- else
- {
- if (GlobalData.MyDeviceMode == DeviceMode.Gun)
- {
- buttons.Add(allButtons[0]);
- buttons.Add(allButtons[1]);
- buttons.Add(allButtons[2]);
- }
- else
- {
- buttons.Add(allButtons[0]);
- buttons.Add(allButtons[1]);
- buttons.Add(allButtons[2]);
- // 目前只有奥运射箭和塔防有双人模式,先显示奥运射箭
- if (isShowButton && allButtons.Count > 3)
- {
- buttons.Add(allButtons[3]);
- allButtons[3].gameObject.SetActive(true);
- }
- }
- }
- // 设置未添加的按钮为隐藏
- HideUnselectedButtons();
- // 初始化按钮
- InitButtons();
- }
- private void HideUnselectedButtons()
- {
- foreach (var button in allButtons)
- {
- // 如果当前按钮不在 buttons 中,隐藏它
- if (!buttons.Contains(button))
- {
- button.gameObject.SetActive(false);
- }
- else
- {
- // 如果在 buttons 中,确保设置为可见
- button.gameObject.SetActive(true);
- }
- }
- }
- //枪模式下显示
- //public void InitGunButtons() {
- // for (int i = 0; i < buttons.Count; i++)
- // {
- // int temp = i;
- // buttons[i].onClick.AddListener(() => {
- // AudioMgr.ins.PlayBtn();
- // OnChangeButton(temp);
- // });
- // }
- //}
- public void InitButtons() {
- for (int i = 0; i < buttons.Count; i++)
- {
- int temp = i;
- buttons[i].onClick.AddListener(() => {
- AudioMgr.ins.PlayBtn();
- OnChangeButton(temp);
- });
- //if (GameMgr.judgmentGameType != 1 && i == 3)
- //{
- // //目前只有奥运射箭和塔防有双人模式,先显示奥运射箭
- // buttons[i].gameObject.SetActive(false);
- //}
- }
- }
- void OnDestroy()
- {
- if (ins == this) ins = null;
- }
- void OnChangeButton(int index)
- {
- bool _selected = false;
- string gotoName = "";
- for (int i = 0; i < buttons.Count; i++)
- {
- Button _button = buttons[i];
- if (index == i)
- {
- _button.GetComponent<ModeSelectView_Button>().OnSetButtonState(true);
- _selected = true;
- gotoName = _button.name;
- }
- else
- {
- _button.GetComponent<ModeSelectView_Button>().OnSetButtonState(false);
- }
- }
- if (_selected)
- {
- //进入选中的页面
- AudioMgr.ins.PlayBtn();
- GoToLocalByName(gotoName);
- }
- }
- public void OnChangeButtonState(int index)
- {
- for (int i = 0; i < buttons.Count; i++)
- {
- Button _button = buttons[i];
- if (index == i)
- {
- _button.GetComponent<ModeSelectView_Button>().OnSetButtonState(true);
- }
- else
- {
- _button.GetComponent<ModeSelectView_Button>().OnSetButtonState(false);
- }
- }
-
- }
- public void GoToLocalByName(string _gotoName)
- {
- switch (_gotoName)
- {
- case "SINGLE_PLYAER": //本地游戏(单人模式)
- GlobalDataTemp.pkMatchType = PKMatchType.None;
- if (GameMgr.judgmentGameType == 1)
- {
- //限时射箭
- GlobalData.pkMatchType = PKMatchType.None;
- GameMgr.gameType = 1;
- SceneManager.LoadScene("Game", LoadSceneMode.Single);
- }
- else
- {
- //打野鸡,打野兔,打野狼
- GameMgr.gameType = GameMgr.judgmentGameType;
- SceneManager.LoadScene("GameChallenge", LoadSceneMode.Single);
- }
- break;
- case "PLAY_LOCALLY": //本地对战
- Debug.Log("触发本地对战:PLAY_LOCALLY");
- GlobalDataTemp.pkMatchType = PKMatchType.LocalPK;
- ViewMgr.Instance.ShowView<RoleSelectView>();
- break;
- case "PLAY_GLOBALLY": //联网
- Debug.Log("触发联网:PLAY_GLOBALLY");
- GlobalDataTemp.pkMatchType = PKMatchType.OnlinePK;
- //ViewMgr.Instance.ShowView<PKGameOptionView>();
- if (GameMgr.judgmentGameType == 1)
- {
- //射箭
- //GlobalDataTemp.pkMatchType = PKMatchType.OnlinePK;
- GlobalDataTemp.matchGameType = 9;
- ViewMgr.Instance.ShowView<PKMatchView>();
- }
- else
- {
- //打野鸡,打野兔,打野狼
- int newGameType = 0;
- if (GameMgr.judgmentGameType == 3) newGameType = 10;
- else if (GameMgr.judgmentGameType == 4) newGameType = 11;
- else if (GameMgr.judgmentGameType == 5) newGameType = 12;
- GlobalDataTemp.matchGameType = newGameType;
- ViewMgr.Instance.ShowView<PKMatchView>();
- }
- break;
- case "DOUBLE_PLYAER": //双人游戏,目前包括(奥运射箭,塔防)
- Debug.Log("DOUBLE_PLYAER");
- if (AimHandler.ins.bRuning9Axis())
- {
- SceneManager.LoadScene("GameDouble", LoadSceneMode.Single);
- }
- else
- {
- SceneManager.LoadScene("InfraredGameDouble", LoadSceneMode.Single);
- }
- break;
- default:
- break;
- }
- }
- public void OnClick_Back()
- {
- AudioMgr.ins.PlayBtn();
- ViewMgr.Instance.DestroyView<ModeSelectView>();
- }
- }
|