У меня есть викторина и в конце игры я хочу, чтобы отобразить список лидеров из топ-10 людей с их именами и оценка, например: Ioue 500.Unity: отсутствует 10 топ лидеров
Сейчас я Добавляю счет каждый раз, когда пользователь оценивает, и я проверяю высокий балл. Однако я не уверен, как сделать таблицу лидеров. может ли кто-нибудь меня вести?
Этот сценарий, где пользователь регистрируется, это другая сцена.
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
using System.Linq;
using System.Text.RegularExpressions;
using System.IO;
using System;
public class Registration : MonoBehaviour
{
public Text name;
public static Registration _instace;
private void Awake()
{
_instace = this;
}
/// <summary>
/// Performs data validation and registers user
/// </summary>
public void Register()
{
string data;
string currentUser = string.Empty;
string userName;
data = GetData(name);
if (data == null || string.IsNullOrEmpty(data))
{
Recolor(name, errorColor);
return;
}
else
{
userName = data;
currentUser += data + ";";
}
string previousDirectory = Directory.GetCurrentDirectory();
Directory.SetCurrentDirectory(Application.persistentDataPath);
if (File.Exists("Users.csv"))
{
string[] users = File.ReadAllLines("Users.csv");
foreach (string user in users)
{
string[] parts = user.Split(";".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
}
}
File.AppendAllText("Users.csv", currentUser + Environment.NewLine);
Directory.SetCurrentDirectory(previousDirectory);
SceneManager.LoadScene(nextScene);
}
// Gets input data from control group provided
string GetData(Graphic group)
{
InputField inputField = group.GetComponentInChildren<InputField>();
if (inputField != null)
{
return inputField.text;
}
return null;
}
// Gets input data from control group provided
string GetDataD(Graphic group)
{
Dropdown inputField = group.GetComponentInChildren<Dropdown>();
if (inputField != null)
{
return inputField.captionText.text;
}
return null;
}
}
Где я добавить счет, когда игрок получает правильный ответ
if (isCorrect)
{
theAnswerIsCorrect = true;
playerScore += 20;
scoreDisplayText.text = "Score: " + playerScore.ToString();
}
Это где я сравниваю старый и новый счет:
public void submitNewPlayerScore(int newScore)
{
if (newScore > playerProgress.highestScore)
{
playerProgress.highestScore = newScore;
SavePlayerProgress();
}
}
Теперь то, что мне нужно, я буду есть много пользователей, играющих, я просто хочу показать 10 лучших пользователей с их именами и высокими баллами. Спасибо!
Пользователи со своим счетом сохраняются в файле? –
Немного оффтопик, но этот проект из учебника? В последнее время я видел много вопросов о викторинах с аналогичными именами. – Maakep
Да, это из учебных уроков в реальном времени Unity – David