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.
 
 
 
 

91 lines
2.2 KiB

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Networking;
using Networking;
using Networking.Client;
public class NetworkedUIManager : PlayerUIManager
{
[SerializeField]
private ClientObject Client;
[SerializeField]
private TMPro.TextMeshProUGUI TimeText;
[SerializeField]
private RectTransform Title;
[SerializeField]
private float TotalTime;
[Header("Debug")]
[SerializeField]
private bool isTimePaused;
private float StartTime;
private BlockReader reader;
protected override void Awake()
{
base.Awake();
reader = new BlockReader();
TrayUI.SetBlockReader(reader);
StartTime = Time.time;
ShowPosition.y -= Title.rect.height;
OnClick_Show();
}
private void OnEnable()
{
if (Client.isConnected)
Client.client.RegisterHandler(LogicProtocols.SendRoundTime, UpdateTime);
}
private void OnDisable()
{
if (Client.isConnected)
Client.client.UnregisterHandler(LogicProtocols.SendRoundTime);
}
private void Update()
{
if (!isTimePaused)
{
TimeText.text = ((int)(TotalTime - (Time.time - StartTime))).ToString();
if (Time.time - StartTime > TotalTime)
OnClick_Play();
}
}
public override void OnClick_Play()
{
OnClick_Hide();
LogicProtocols.LogicMsg msg = new LogicProtocols.LogicMsg(reader.LogicChain.ToArray());
Debug.Log("sending on " + LogicProtocols.SendLogicList);
Client.client.SendByChannel(LogicProtocols.SendLogicList, msg, TransportConfigure.ReliableFragmented);
UnityEngine.SceneManagement.SceneManager.LoadScene("WaitScene");
}
public void On_ClickPauseTime()
{
isTimePaused = !isTimePaused;
if (isTimePaused)
TimeText.color = Color.grey;
else
TimeText.color = Color.black;
}
public void UpdateTime(NetworkMessage msg)
{
LogicProtocols.FloatMsg floatMsg;
if (!msg.TryRead(out floatMsg))
return;
TotalTime = floatMsg.Float;
}
}