powerfun-unity/Assets/Scripts/Scenes/Ride/Competiton/CompetitionWatcherFactory.cs

63 lines
2.1 KiB
C#

using Assets.Scenes.Ride.Scripts.Model.CyclingModels;
using Assets.Scripts;
using System.Linq;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.SceneManagement;
namespace Assets.Scenes.Ride.Scripts
{
public class CompetitionWatcherFactory : MonoBehaviour
{
int pageIndex = 1;
int pageSize = 8;
CyclingController cyclingController;
private void start()
{
cyclingController = FindObjectOfType<CyclingController>();
}
float time = 1;
private void Update()
{
time -= Time.deltaTime;
while (time < 0)
{
Refresh();
time = 1;
}
}
public void Refresh()
{
if (cyclingController.cyclingController is CompetitionModel model)
{
var list = model?.competitionRankingModel?.Results;
if (list == null) return;
var parent = transform.Find("ScrollView/Viewport/Content");
Utils.DestroyChildren(parent);
var pagedList = list.Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList();
foreach (var item in pagedList)
{
var finalRankingItem = Instantiate(Resources.Load<GameObject>("UI/Prefab/Match/FinalRankingItem"), parent);
var finalRankingItemScript = finalRankingItem.GetComponent<FinalRankingItemScript>();
finalRankingItemScript.setRanking(item.Index);
finalRankingItemScript.setHeartRate(item.HeartRate);
finalRankingItemScript.setName(item.Name);
finalRankingItemScript.setPower(item.Power.ToString());
finalRankingItemScript.setRatio(item.WeightKg.ToString("f2"));
finalRankingItemScript.setTimer(item.TripTime);
}
}
}
private void Close(BaseEventData baseEventData)
{
this.gameObject.SetActive(false);
this.Destroy();
//SceneManager.LoadScene("MainScene");
}
}
}