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(); } 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("UI/Prefab/Match/FinalRankingItem"), parent); var finalRankingItemScript = finalRankingItem.GetComponent(); 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"); } } }