using UnityEngine; using System.Collections; using System; using UnityEngine.UI; using System.Collections.Generic; using System.Linq; public class HighscoresUiManager : MonoBehaviour { public GameObject grid; public Sprite[] Transports; public List GridChildren; private string prefabPath = "Prefab/RankPanel"; // Use this for initialization void Start() { GridChildren = new List(); } void OnEnable() { 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 image = rankPanel.GetComponentsInChildren(); image.FirstOrDefault().sprite = Transports[entry.transport]; rankPanel.transform.SetParent(grid.transform, false); //rankPanel.transform.parent = grid.transform; } } private void ClearGrid() { foreach (var go in GridChildren) { Destroy(go); } } }