using Assets.Scripts;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class RaceScript : PFUIPanel
{
// Start is called before the first frame update
protected Transform currentItem { get; set; }
protected void StartTime()
{
timerFlag = true;
StartCoroutine(Timer());
}
protected void StopTime()
{
timerFlag = false;
}
///
/// 通过消息调用,子给父传
///
///
public void SetCurrentItem(Transform t)
{
currentItem = t;
HandleTime();
if (t != null)
{
StartTime();
}
else
{
StopTime();
}
}
/*参考代码
var second = Math.Ceiling((Now - mapCompetition.StartTime.ToLocalTime()).TotalSeconds);
var ts = TimeSpan.FromSeconds(second);
return $"{ (int)ts.TotalHours }:{ts:mm}:{ts:ss}";*/
private bool timerFlag = false;
IEnumerator Timer()
{
while (timerFlag)
{
yield return new WaitForSeconds(1.0f); // 停止执行1秒
HandleTime();
//time = UIManager.Now.GetDateTime().AddSeconds(1);
}
}
private void HandleTime()
{
if (currentItem != null && currentItem.Find("GetReadyContainer").gameObject.activeSelf)
{
var map = currentItem.GetComponent().mapCompetition;
var time = map.StartTime.ToLocalTime() - UIManager.Now.GetDateTime();
if (time.TotalSeconds < 0)
{
currentItem.Find("GetReadyContainer").GetComponent().alpha = 0;
}
else
{
currentItem.Find("GetReadyContainer").GetComponent().alpha = 1;
currentItem.Find("GetReadyContainer/Value").GetComponent().text
= Utils.GetCountDown(time);
}
}
}
void Start()
{
}
// Update is called once per frame
void Update()
{
}
}