145 lines
5.2 KiB
C#
145 lines
5.2 KiB
C#
using Assets.Scripts;
|
|
using DG.Tweening;
|
|
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; }
|
|
public override void Show()
|
|
{
|
|
base.Show();
|
|
transform.MyDOFade();
|
|
}
|
|
protected void StartTime()
|
|
{
|
|
timerFlag = true;
|
|
StartCoroutine(Timer());
|
|
}
|
|
protected void StopTime()
|
|
{
|
|
timerFlag = false;
|
|
}
|
|
/// <summary>
|
|
/// 通过消息调用,子给父传
|
|
/// </summary>
|
|
/// <param name="t"></param>
|
|
public void SetCurrentItem(Transform t)
|
|
{
|
|
if (t != null)
|
|
{
|
|
currentItem = t;
|
|
HandleTime();
|
|
StartTime();
|
|
}
|
|
else
|
|
{
|
|
StopTime();
|
|
}
|
|
}
|
|
private Transform avatar;
|
|
protected void handleAvatar()
|
|
{
|
|
avatar = transform.Find("Avatar");
|
|
if (avatar != null)
|
|
{
|
|
Debug.Log(App.CurrentUser.WxHeadImg);
|
|
Utils.DisplayImage(avatar.GetComponent<RawImage>(), App.CurrentUser.WxHeadImg, true);
|
|
UIManager.AddEvent(avatar.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, b =>
|
|
{
|
|
UIManager.ShowUserInfoPanel();
|
|
});
|
|
}
|
|
}
|
|
/*参考代码
|
|
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<RaceItemScript>().mapCompetition;
|
|
if (map.Status == 1)
|
|
{
|
|
currentItem.Find("GetReadyContainer/Title").GetComponent<Text>().text = "Start for Registration";
|
|
currentItem.Find("GetReadyContainer/Value").GetComponent<Text>().text =
|
|
map.StartApplyTime.ToLocalTime().ToString("yyyy-MM-dd HH:mm");
|
|
currentItem.Find("GetReadyContainer-2/Title").GetComponent<Text>().text = "Deadline for Registration";
|
|
currentItem.Find("GetReadyContainer-2/Value").GetComponent<Text>().text =
|
|
map.EndApplyTime.ToLocalTime().ToString("yyyy-MM-dd HH:mm");
|
|
|
|
if ((map.StartApplyTime.ToLocalTime() - UIManager.Now.GetDateTime()).TotalSeconds < 0 ||
|
|
(map.StartTime.ToLocalTime() - UIManager.Now.GetDateTime()).TotalSeconds < 0)
|
|
{
|
|
var res = ConfigHelper.mapCompetitionApi.GetById(map.Id);
|
|
if (res.result)
|
|
{
|
|
currentItem.GetComponent<RaceItemScript>().Initial(res.data, null);
|
|
}
|
|
}
|
|
}
|
|
else if (map.Status == 3)
|
|
{
|
|
currentItem.Find("GetReadyContainer/Title").GetComponent<Text>().text = "Start Time";
|
|
currentItem.Find("GetReadyContainer/Value").GetComponent<Text>().text =
|
|
map.StartTime.ToLocalTime().ToString("yyyy-MM-dd HH:mm");
|
|
}
|
|
//else if (map.Status == 4)
|
|
//{
|
|
// currentItem.Find("GetReadyContainer/Title").GetComponent<Text>().text = "End Time";
|
|
// currentItem.Find("GetReadyContainer/Value").GetComponent<Text>().text =
|
|
// map.FirstEndTime.HasValue ?
|
|
// map.FirstEndTime.Value.ToString("yyyy-MM-dd HH:mm") : map.EndTime.ToString("yyyy-MM-dd HH:mm");
|
|
//}
|
|
else
|
|
{
|
|
//Dictionary<int,>
|
|
var time = map.StartTime.ToLocalTime() - UIManager.Now.GetDateTime();
|
|
if (time.TotalSeconds < 0)
|
|
{
|
|
currentItem.Find("GetReadyContainer").GetComponent<CanvasGroup>().alpha = 0;
|
|
var res = ConfigHelper.mapCompetitionApi.GetById(map.Id);
|
|
if (res.result)
|
|
{
|
|
currentItem.GetComponent<RaceItemScript>().Initial(res.data, null);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
currentItem.Find("GetReadyContainer").GetComponent<CanvasGroup>().alpha = 1;
|
|
currentItem.Find("GetReadyContainer/Title").GetComponent<Text>().text
|
|
= map.HasJoin ? "Get Ready" : "Start Time";
|
|
currentItem.Find("GetReadyContainer/Value").GetComponent<Text>().text
|
|
= map.HasJoin ? Utils.GetCountDown(time): map.StartTime.ToLocalTime().ToString("yyyy-MM-dd HH:mm");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
void Start()
|
|
{
|
|
|
|
}
|
|
|
|
// Update is called once per frame
|
|
void Update()
|
|
{
|
|
|
|
}
|
|
}
|