gold_sprint_lpr/Assets/Scripts/HighscoresUiManager.cs
francois d4aba6aa09 Ajout menu highscores et fin intégration design
Raf: input sur le menu des records
Méthodes d'interrogation du gestionnaire de records
2018-03-15 03:44:19 +01:00

58 lines
1.7 KiB
C#

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<GameObject> GridChildren;
private string prefabPath = "Prefab/RankPanel";
// Use this for initialization
void Start()
{
GridChildren = new List<GameObject>();
}
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<Text>(rankPanel.GetComponentsInChildren<Text>());
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>();
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);
}
}
}