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(); var cg = this.GetComponent(); cg.alpha = 0; cg.DOFade(1f, .5f); } protected void StartTime() { timerFlag = true; StartCoroutine(Timer()); } protected void StopTime() { timerFlag = false; } /// /// 通过消息调用,子给父传 /// /// 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(), 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().mapCompetition; if (map.Status == 1) { currentItem.Find("GetReadyContainer/Title").GetComponent().text = "Start for Registration"; currentItem.Find("GetReadyContainer/Value").GetComponent().text = map.StartApplyTime.ToLocalTime().ToString("yyyy-MM-dd HH:mm"); currentItem.Find("GetReadyContainer-2/Title").GetComponent().text = "Deadline for Registration"; currentItem.Find("GetReadyContainer-2/Value").GetComponent().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().Initial(res.data, null); } } } else if (map.Status == 3) { currentItem.Find("GetReadyContainer/Title").GetComponent().text = "Start Time"; currentItem.Find("GetReadyContainer/Value").GetComponent().text = map.StartTime.ToLocalTime().ToString("yyyy-MM-dd HH:mm"); } //else if (map.Status == 4) //{ // currentItem.Find("GetReadyContainer/Title").GetComponent().text = "End Time"; // currentItem.Find("GetReadyContainer/Value").GetComponent().text = // map.FirstEndTime.HasValue ? // map.FirstEndTime.Value.ToString("yyyy-MM-dd HH:mm") : map.EndTime.ToString("yyyy-MM-dd HH:mm"); //} else { //Dictionary var time = map.StartTime.ToLocalTime() - UIManager.Now.GetDateTime(); if (time.TotalSeconds < 0) { currentItem.Find("GetReadyContainer").GetComponent().alpha = 0; var res = ConfigHelper.mapCompetitionApi.GetById(map.Id); if (res.result) { currentItem.GetComponent().Initial(res.data, null); } } else { currentItem.Find("GetReadyContainer").GetComponent().alpha = 1; currentItem.Find("GetReadyContainer/Title").GetComponent().text = map.HasJoin ? "Get Ready" : "Start Time"; currentItem.Find("GetReadyContainer/Value").GetComponent().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() { } }