79 lines
2.7 KiB
C#
79 lines
2.7 KiB
C#
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<GameObject> GridChildren = new List<GameObject>();
|
|
private string prefabPath = "Prefab/RankPanel";
|
|
public GameObject HighscoresPanel;
|
|
public float scrollIncrement = 0.2f;
|
|
|
|
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<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 images = rankPanel.GetComponentsInChildren<Image>();
|
|
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);
|
|
Debug.Log("Vertical" + verticalAxis);
|
|
if (Math.Abs(verticalAxis) == 1)
|
|
{
|
|
var script = HighscoresPanel.GetComponent<ScrollBarButtonScript>();
|
|
if (script != null)
|
|
{
|
|
if (verticalAxis == 1) script.GoUp(scrollIncrement);
|
|
else script.GoDown(scrollIncrement);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (Input.GetButtonDown(GameManager.Instance.Submit) || Input.GetButtonDown(GameManager.Instance.Cancel))
|
|
StartupScript.Current.Display(0, 2);
|
|
}
|
|
}
|