powerfun-unity/Assets/Scripts/UI/Prefab/Panel/GameRoomCountDownController.cs
2023-02-20 17:32:24 +08:00

78 lines
1.7 KiB
C#

using Assets.Scenes.Ride.Scripts;
using Assets.Scripts.Apis.Models;
using System;
using UnityEngine;
using UnityEngine.UI;
public class GameRoomCountDownController : PFUIPanel
{
public Text count;
public Text endCount;
private int Seconds { get; set; }
public GameRoomModel GameRoom { get; set; }
private Action Callback { get; set; }
protected override void Awake()
{
base.Awake();
}
public override void Show()
{
base.Show();
}
private bool isSimple { get; set; }
public void Init(int seconds,Action action,bool isEnd = false,bool isSimple = false)
{
stopped = false;
Seconds = seconds;
Callback = action;
endCount.gameObject.SetActive(false);
this.isSimple = isSimple;
}
public override void Close()
{
base.Close();
}
private bool stopped;
public void Stop()
{
this.stopped = true;
}
float timer = 0f;
private void Update()
{
timer -= Time.deltaTime;
while (timer < 0)
{
if (Seconds == 0)
{
Callback?.Invoke();
}
if (Seconds < 0 || stopped)
{
gameObject.SetActive(false);
}
else
{
if (isSimple)
{
count.text = Seconds.ToString();
}
else
{
count.text = Helper.FormatTicks(Seconds);
}
endCount.text = Helper.FormatTicks(Seconds);
}
Seconds--;
timer += 1f;
}
}
}