Files
5.24BuYu/Assets/MyGame/aa/UI/Home/Sub/UIHome_BY_SelectRoomLevelPanel.cs
T
2026-05-07 03:46:03 +08:00

195 lines
6.5 KiB
C#

using Assets.MyGame.Scripts.Net;
using Assets.MyGame.Scripts.Net.WebResponses;
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Rendering.Universal;
using UnityEngine.UI;
public enum GameType
{
JQQD = 0,
defaultPanel =999,
FLZY = 1,
YYSC = 2,
ZGXQ = 3,
XJMH = 4,
HHWK = 5,
}
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 GameObject ui_Default;
SelectGameLeave_DefaultUIItem currUIDefault;
public UIHome_BY_MySelectRoomPanel panel_UIHome_BY_MySelectRoomPenel;
public GameType currGameType;
int leave = 1;
public bool isMySelectRoom=false;
public List<Camera> subCameras;
public override void Awake()
{
base.Awake();
//foreach (var item in subCameras)
//{
// UniversalAdditionalCameraData mainCameraData = GameManager.Instance.ZhuCam.GetUniversalAdditionalCameraData();
// //mainCameraData.renderType = CameraRenderType.Overlay;
// mainCameraData.cameraStack.Add(item);
//}
WebSocketManager.Instance.Connect(SocketType.room);
}
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<int,bool> keyValuePairs = new Dictionary<int,bool>();
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);
AudioManager.Instance.ChangeBG(61001);
if (args != null && args is GameType)
{
currGameType = (GameType)args;
GameManager.Instance.gameData.currGameType = currGameType;
if (currGameType!= GameType.JQQD)
{
GameObject LV1 = SelectRoom1.transform.GetChild(((int)currGameType)).gameObject;
LV1.SetActive(true);
var Lv1Item = LV1.GetComponent<SeccionItem>();
MySelectRoom1 = Lv1Item.btn_SelectGameRoom;
MySelectRoom1.onClick.RemoveAllListeners();
GameObject LV2 = SelectRoom2.transform.GetChild(((int)currGameType) ).gameObject;
LV2.SetActive(true);
var Lv2Item = LV2.GetComponent<SeccionItem>();
MySelectRoom2 = Lv2Item.btn_SelectGameRoom;
MySelectRoom2.onClick.RemoveAllListeners();
GameObject LV3 = SelectRoom3.transform.GetChild(((int)currGameType)).gameObject;
LV3.SetActive(true);
var Lv3Item = LV3.GetComponent<SeccionItem>();
MySelectRoom3 = Lv3Item.btn_SelectGameRoom;
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);
});
Lv1Item.btn_JoinGame.onClick.RemoveAllListeners();
Lv2Item.btn_JoinGame.onClick.RemoveAllListeners();
Lv3Item.btn_JoinGame.onClick.RemoveAllListeners();
Lv1Item.btn_JoinGame.onClick.AddListener(() =>
{
//StartGame(currGameType);
isMySelectRoom = false;
leave = 1;
OnSelectRoom(leave);
});
Lv2Item.btn_JoinGame.onClick.AddListener(() =>
{
isMySelectRoom = false;
leave = 2;
OnSelectRoom(leave);
});
Lv3Item.btn_JoinGame.onClick.AddListener(() =>
{
isMySelectRoom = false;
leave = 3;
OnSelectRoom(leave);
});
currUIDefault = ui_Default.transform.GetChild(((int)currGameType)).GetComponent<SelectGameLeave_DefaultUIItem>();
currUIDefault.gameObject.SetActive(true);
btn_Close = currUIDefault.btn_FanHui;
btn_Close.onClick.RemoveAllListeners();
btn_Close.onClick.AddListener(() =>
{
uIManager.Hide(this);
});
}
}
}
public override void Hide()
{
base.Hide();
AudioManager.Instance.ChangeBG(69001);
//img_BG.color = new Color(1,1,1,0);
if (currGameType != GameType.JQQD)
{
SelectRoom1.transform.GetChild((int)currGameType).gameObject.SetActive(false);
SelectRoom2.transform.GetChild((int)currGameType).gameObject.SetActive(false);
SelectRoom3.transform.GetChild((int)currGameType).gameObject.SetActive(false);
ui_Default.transform.GetChild((int)currGameType).gameObject.SetActive(false);
currGameType = GameType.JQQD;
}
}
}