网上演练贵港万达广场(人员密集)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

114 lines
3.7 KiB

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public enum RoomState
{
None,
Wait,
Start,
UnLoad,
Loading
}
public class RoomManager : MonoBehaviour
{
public RoomState MyState;
public Room MyRoom;
public GameObject StateWait;
public GameObject StateStart;
public GameObject StateUnLoad;
public GameObject StateLoading;
public bool HasPassWord;
public GameObject Lock;
public Image RoomShowImg;
public Text RoomName;
private bool HasStart = false;
private Toggle MyToggle;
void Start()
{
MyToggle = GetComponent<Toggle>();
MyToggle.group = GetComponentInParent<ToggleGroup>();
MyToggle.onValueChanged.AddListener(ClickRoom);
if (!string.IsNullOrEmpty(MyRoom.Password))
{
HasPassWord = true;
Lock.gameObject.SetActive(true);
}
string imgPath = "Common/" + MyRoom.Map.unit;
Texture2D texture = (Texture2D)Resources.Load(imgPath);
RoomShowImg.sprite = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), new Vector2(0.5f, 0.5f));
RoomName.text = MyRoom.Name;
}
private void ClickRoom(bool ok)
{
if (ok)
{
/*TODO:第二版资源加载中做
* 判断当前客服端有没有要进入房间的场景或资源;若没有则下载相应的地图资源,并切换房间UI的状态
* */
if (LobbyDataManager.GetInstance.NowRoomId != MyRoom.Id)
{
LobbyDataManager.GetInstance.BindRoomMessage(this);
CurrentUserInfo.room = MyRoom;
}
}
else
{
if (!GetComponent<Toggle>().group.AnyTogglesOn())
{
LobbyDataManager.GetInstance.BindRoomMessage(null);
CurrentUserInfo.room = null;
}
}
}
void Update()
{
if (MyRoom.IsDrillStart && !HasStart)
{
MyState = RoomState.Start;
HasStart = true;
}
if (MyState != RoomState.None)
{
switch (MyState)
{
case RoomState.Wait:
StateWait.gameObject.SetActive(true);
StateStart.gameObject.SetActive(false);
StateUnLoad.gameObject.SetActive(false);
StateLoading.gameObject.SetActive(false);
MyState = RoomState.None;
break;
case RoomState.Start:
StateWait.gameObject.SetActive(false);
StateStart.gameObject.SetActive(true);
StateUnLoad.gameObject.SetActive(false);
StateLoading.gameObject.SetActive(false);
MyState = RoomState.None;
break;
case RoomState.UnLoad:
StateWait.gameObject.SetActive(false);
StateStart.gameObject.SetActive(false);
StateUnLoad.gameObject.SetActive(true);
StateLoading.gameObject.SetActive(false);
MyState = RoomState.None;
break;
case RoomState.Loading:
StateWait.gameObject.SetActive(false);
StateStart.gameObject.SetActive(false);
StateUnLoad.gameObject.SetActive(false);
StateLoading.gameObject.SetActive(true);
//预留加载地图
{
//TODO:
}
break;
}
}
}
}