112 lines
4.1 KiB
C#
112 lines
4.1 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>();
|
|
Refresh();
|
|
}
|
|
|
|
private void Refresh(string type = "month")
|
|
{
|
|
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");
|
|
}
|
|
}
|
|
}
|