using Assets.Scripts; using Assets.Scripts.Apis; using Assets.Scripts.Apis.Models; using System; using System.Collections.Generic; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI; namespace Assets.Scenes.Ride.Scripts { public class CompetitionLoadingController : AbstratctLoadingController { private GameObject Watch { get; set; } private bool _canJoin = false; private bool _canStart = false; private bool _canWatch = false; private RawImage CompetitionDesc { get; set; } private RawImage SponsorLogoImage { get; set; } private Text StartTime { get; set; } private Text Contestant { get; set; } private Text CompetitionStatus { get; set; } private Text GetReady { get; set; } private Text GetReadyTitle { get; set; } private Transform PlayersPanel {get;set;} private GameObject LeftBack { get; set; } private GameObject MiddleBack { get; set; } private GameObject CancelJoin { get; set; } private GameObject ReadMore { get; set; } public override void InjectController(CyclingController controller) { cyclingController = controller; //渲染比赛界面 panel = Instantiate(Resources.Load("UI/Prefab/Match/CompetitonPanel"), transform); panel.transform.SetAsFirstSibling(); PFUIPanel mainPanel = panel.GetComponent(); PFUIPanel modelPanel = transform.Find("ModalPanel").GetComponent(); CompetitionDesc = panel.transform.Find("CompetitionDesc").GetComponent(); SponsorLogoImage = panel.transform.Find("SponsorTitle/Sponsor").GetComponent(); cyclingController.SetUIManager(mainPanel, modelPanel); } protected override void Start() { base.Start(); } MapCompetition competition { get; set; } protected override void Update() { base.Update(); #region 倒计时状态 if (competition != null) { var count = (int)(competition.StartTime.ToLocalTime() - UIManager.Now.GetDateTime()).TotalSeconds; if (count > 0) { GetReady.text = Helper.FormatTicks(count); GetReadyTitle.gameObject.SetActive(true); GetReady.gameObject.SetActive(true); } else { GetReadyTitle.gameObject.SetActive(false); GetReady.gameObject.SetActive(false); } var applyCount = (int)(competition.StartApplyTime.ToLocalTime() - UIManager.Now.GetDateTime()).TotalSeconds; if (count == 0 || applyCount == 0) { UpdateCompetition(); } //1.报名按钮 Apply.SetActive(_canJoin); //2.观看按钮 Watch.SetActive(_canWatch); //3.开始按钮 rideNow.gameObject.SetActive(_canStart); //4.详情按钮 Detail.SetActive(!_canStart); //5.取消报名按钮 (比赛开始前可以取消报名) CancelJoin.SetActive(_canCancelApply); if (_canCancelApply) { CompetitionStatus.text = "Registered"; } else { CompetitionStatus.text = competition.StatusVlaue.ToString(); } Watch.GetComponent