122 lines
3.9 KiB
C#
122 lines
3.9 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.GetComponent<CanvasGroup>().DOFade(1, 0.5f);
|
|
}
|
|
protected void StartTime()
|
|
{
|
|
timerFlag = true;
|
|
StartCoroutine(Timer());
|
|
}
|
|
protected void StopTime()
|
|
{
|
|
timerFlag = false;
|
|
}
|
|
/// <summary>
|
|
/// 通过消息调用,子给父传
|
|
/// </summary>
|
|
/// <param name="t"></param>
|
|
public void SetCurrentItem(Transform t)
|
|
{
|
|
currentItem = t;
|
|
HandleTime();
|
|
if (t != null)
|
|
{
|
|
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 = "Application Start Time";
|
|
currentItem.Find("GetReadyContainer/Value").GetComponent<Text>().text =
|
|
map.StartApplyTime.ToString("yyyy-MM-dd HH:mm");
|
|
currentItem.Find("GetReadyContainer-2/Title").GetComponent<Text>().text = "Race Start Time";
|
|
currentItem.Find("GetReadyContainer-2/Value").GetComponent<Text>().text =
|
|
map.StartTime.ToString("yyyy-MM-dd HH:mm");
|
|
}
|
|
else
|
|
{
|
|
//Dictionary<int,>
|
|
var time = (map.Status == 2 ? map.StartTime.ToLocalTime() : map.EndTime.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.Status == 2 ? "Get Ready" : "Riding Time";
|
|
currentItem.Find("GetReadyContainer/Value").GetComponent<Text>().text
|
|
= Utils.GetCountDown(time);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
void Start()
|
|
{
|
|
|
|
}
|
|
|
|
// Update is called once per frame
|
|
void Update()
|
|
{
|
|
|
|
}
|
|
}
|