2022-10-08 13:26:38 +08:00

116 lines
4.2 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using UnityEngine;
using UnityEngine.EventSystems;
using DG.Tweening;
using UnityEngine.UI;
namespace Assets.Scripts.Scenes.VideoRide
{
class RankingScript: MonoBehaviour
{
GameObject Hide { get; set; }
GameObject Show { get; set; }
GameObject Month { get; set; }
GameObject Week { get; set; }
GameObject Day { get; set; }
VideoGameManager manager { get; set; }
Transform Container { get; set; }
Text MonthTxt { get; set; }
Text WeekTxt { get; set; }
Text DayTxt { get; set; }
private bool isAnimating = false;
private void Start()
{
Hide = transform.Find("Head/Hide").gameObject;
Show = transform.Find("Head/Show").gameObject;
Month = transform.Find("Head/Month").gameObject;
Week = transform.Find("Head/Week").gameObject;
Day = transform.Find("Head/Day").gameObject;
MonthTxt = transform.Find("Head/Month/Text").GetComponent<Text>();
MonthTxt.color = Color.red;
WeekTxt = transform.Find("Head/Week/Text").GetComponent<Text>();
DayTxt = transform.Find("Head/Day/Text").GetComponent<Text>();
manager = FindObjectOfType<VideoGameManager>();
UIManager.AddEvent(Hide, UnityEngine.EventSystems.EventTriggerType.PointerClick, Hidehandler);
UIManager.AddEvent(Show, UnityEngine.EventSystems.EventTriggerType.PointerClick, Showhandler);
UIManager.AddEvent(Month, UnityEngine.EventSystems.EventTriggerType.PointerClick, MonthClick);
UIManager.AddEvent(Week, UnityEngine.EventSystems.EventTriggerType.PointerClick, WeekClick);
UIManager.AddEvent(Day, UnityEngine.EventSystems.EventTriggerType.PointerClick, DayClick);
Container = transform.Find("List/Viewport/Content");
Month.GetComponent<Text>();
#if UNITY_EDITOR
UIManager.InitNow();//重置当前时间
#endif
Refresh();
}
private void Refresh(string type = "month")
{
return;
var list = manager.GetRankingList(type);
if (list != null)
{
var prefab = Resources.Load<GameObject>("UI/Prefab/AR/RankingItem");
Container.DestroyChildren();
foreach (var item in list.list)
{
GameObject newObj = (GameObject)Instantiate(prefab, Container);
var itemScript = newObj.GetComponent<RankingItemScript>();
itemScript.SetName(item.NickName);
var texture = manager.GetCountryImageByCode(item.CountryCode);
itemScript.SetCountry(texture);
itemScript.SetTimer(item.TotalTime);
}
}
}
public void Hidehandler(BaseEventData data)
{
if (isAnimating)
return;
isAnimating = true;
transform.DOLocalMoveX(-913, 1f).onComplete+=()=> {
Show.SetActive(true);
Hide.SetActive(false);
isAnimating = false;
};
}
public void Showhandler(BaseEventData data)
{
if (isAnimating)
return;
isAnimating = true;
Show.SetActive(false);
Hide.SetActive(true);
transform.DOLocalMoveX(-667, 1f).onComplete += () => {
isAnimating = false;
};
}
public void MonthClick(BaseEventData data)
{
MonthTxt.color = Color.red;
WeekTxt.color = Color.white;
DayTxt.color = Color.white;
Refresh("month");
}
public void WeekClick(BaseEventData data)
{
MonthTxt.color = Color.white;
WeekTxt.color = Color.red;
DayTxt.color = Color.white;
Refresh("week");
}
public void DayClick(BaseEventData data)
{
MonthTxt.color = Color.white;
WeekTxt.color = Color.white;
DayTxt.color = Color.red;
Refresh("day");
}
}
}