using UnityEngine; using System.Collections; using System; using UnityEngine.UI; using System.Collections.Generic; using System.Linq; public class HighscoresUiManager : BaseInputBehavior { public GameObject grid; //public Sprite[] Transports; public List GridChildren = new List(); private string prefabPath = "Prefab/RankPanel"; public GameObject HighscoresPanel; void OnEnable() { InputDelay = 200; ClearGrid(); FillGrid(); } private void FillGrid() { if (HighscoresManager.Current == null) return; foreach (var entry in HighscoresManager.Current.Entries) { var rankPanel = Instantiate(Resources.Load(prefabPath)) as GameObject; var texts = new List(rankPanel.GetComponentsInChildren()); texts.First(t => string.Equals(t.name, "rank", StringComparison.InvariantCultureIgnoreCase)) .text = entry.rank.ToString(); texts.First(t => string.Equals(t.name, "pseudo", StringComparison.InvariantCultureIgnoreCase)) .text = entry.pseudo.ToString(); texts.First(t => string.Equals(t.name, "time", StringComparison.InvariantCultureIgnoreCase)) .text = entry.timeStr; var images = rankPanel.GetComponentsInChildren(); var image = images.FirstOrDefault(i => i.name == "Image"); if (image != null) image.sprite = GameManager.Instance.Transports[entry.transport]; else image.sprite = null; rankPanel.transform.SetParent(grid.transform, false); GridChildren.Add(rankPanel); //rankPanel.transform.parent = grid.transform; } } private void ClearGrid() { foreach (var go in GridChildren) { Destroy(go); } } private void Update() { if (!IsSpawned) { if (!string.IsNullOrEmpty(GameManager.Instance.YAxis)) { var verticalAxis = Input.GetAxis(GameManager.Instance.YAxis); if (Math.Abs(verticalAxis) == 1) { var script = HighscoresPanel.GetComponent(); if (script != null) { if (verticalAxis == 1) script.GoUp(); else script.GoDown(); } } } } if(Input.GetKeyDown(GameManager.Instance.Submit) || Input.GetKeyDown(GameManager.Instance.Cancel)) StartupScript.Current.Display(0, 2); } }