using Assets.MyGame.Scripts.Net; using Assets.MyGame.Scripts.Net.WebResponses; using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public enum GameType { JQQD = 0, defaultPanel =999, FLZY = 1, TGXX = 2, ZGXQ = 3, XJMH = 4, HHWK = 5, } [Serializable] public class BG_SelectRoom { public string name; public GameType gameType; public Sprite sprite; } public class UIHome_BY_SelectRoomLevelPanel : SubUIBase { [Header("DefaultGame")] [Header("快速进入")] public Button SelectRoom1; public Button SelectRoom2; public Button SelectRoom3; [Header("手动选择")] public Button MySelectRoom1; public Button MySelectRoom2; public Button MySelectRoom3; public UIHome_BY_MySelectRoomPanel panel_UIHome_BY_MySelectRoomPenel; public GameType currGameType; public List bG_SelectRooms=new List(); public Image img_BG; int leave = 1; public bool isMySelectRoom=false; public override void Awake() { base.Awake(); WebSocketManager.Instance.Connect(SocketType.room); MySelectRoom1.onClick.AddListener(() => { isMySelectRoom=true; leave = 1; OnSelectRoom(leave); }); MySelectRoom2.onClick.AddListener(() => { isMySelectRoom = true; leave = 2; OnSelectRoom(leave); }); MySelectRoom3.onClick.AddListener(() => { isMySelectRoom=true; leave = 3; OnSelectRoom(leave); }); SelectRoom1.onClick.AddListener(() => { //StartGame(currGameType); isMySelectRoom = false; leave = 1; OnSelectRoom(leave); }); SelectRoom2.onClick.AddListener(() => { isMySelectRoom = false; leave = 2; OnSelectRoom(leave); }); SelectRoom3.onClick.AddListener(() => { isMySelectRoom = false; leave = 3; OnSelectRoom(leave); }); } public void OnSelectRoom(int leave) { //这里有问题 玩的人多了就不能完了 WebSocketSendList.GetRoomListFish(leave, 1); //WebSocketManager.Instance.Send(SocketType.room, "{\"type\":1,\"target\":\"GetRoomList\",\"invocationId\":\"1\",\"arguments\":[\""+GameManager.Instance.user.id+"\","+(int)GameManager.Instance.gameData.currGameType+","+leave+",1]}"); //这里想websocket发送链接请求 //panel_UIHome_BY_MySelectRoomPenel.Show(json); } public static void StartGame(RoomChangeResponse o) { Dictionary keyValuePairs = new Dictionary(); for (int i = 0; i < o.maxPlayerCount; i++) { keyValuePairs.Add(i, true); } foreach (var item in o.players) { keyValuePairs[item.position] = false; } foreach(var item in keyValuePairs) { if (item.Value) { GameManager.Instance.StartGame(() => { WebSocketSendList.JoinRoom(o.roomId, GameManager.Instance.user.id, item.Key); }); break; } } //这里写判断条件 } public override void Show(object args = null) { base.Show(args); if (args != null && args is GameType) { currGameType = (GameType)args; GameManager.Instance.gameData.currGameType = currGameType; if (currGameType!= GameType.JQQD) { SelectRoom1.transform.GetChild(((int)currGameType)+1).gameObject.SetActive(true); SelectRoom2.transform.GetChild(((int)currGameType) + 1).gameObject.SetActive(true); SelectRoom3.transform.GetChild(((int)currGameType) + 1).gameObject.SetActive(true); } foreach (var item in bG_SelectRooms) { if (item.gameType==currGameType) { img_BG.sprite = item.sprite; img_BG.color =Color.white; } } } } public override void Hide() { base.Hide(); //img_BG.color = new Color(1,1,1,0); if (currGameType != GameType.JQQD) { SelectRoom1.transform.GetChild((int)currGameType+1).gameObject.SetActive(false); SelectRoom2.transform.GetChild((int)currGameType+1).gameObject.SetActive(false); SelectRoom3.transform.GetChild((int)currGameType+1).gameObject.SetActive(false); currGameType = GameType.JQQD; } } }