|
|
- 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;
- }
-
- }
|