Я пытаюсь составить рейтинг для какой-нибудь университетской работы.Лучший способ, который пришёл в голову, - это создать список с String, Integer для каждой позиции.Я искал в документации: https://unity3d.com/es/learn/tutorials/modules/intermediate/scripting/lists-and-dictionaries?gq=sort, где я нашел идеальный пример для моей проблемы, поэтому я начал работать.Теперь я создал Interfece:
public class Name_Puntuation: IComparable
public string namePlayer;
public int puntuation;
public Name_Puntuation( string newNomPlayer, int newPuntuation){
nomPlayer = newNomPlayer;
puntuation= newPuntuation;
}
public int CompareTo(Name_Puntuation other){
if (other == null) {
return 1;
}
return Puntuation - other.Puntuation;
}
Я также добавил в свой GameController то, что я хочу сделать со списком.Этот класс контролирует холст игры.Мы печатаем всю информацию в текстовые поля, и поэтому я хотел сделать с рейтингом:
public class GameController : MonoBehaviour {
public List <Name_Puntuation> ranking;
void Start () {
playerName= GetComponent<MenuController> ().inp; //name the player choosed
ranking = new List<Name_Puntuation> ();
}
void Update () { }
public void Ranking(){
int puntuation= punts;
ranking.Add (new Name_Puntuation(playerName, puntuation));
ranking.Sort ();
foreach (Nom_Puntuacio p in ranking) {
print (p.playerName+ " " + p.puntuation);
}
}
}
но теперь я застрял.Я хочу добавить информацию в список, когда игра закончится.Когда мне нужно вызывать функцию?rankig.sort ();будет сортировать бентуацию (целое число) каждого игрока?Еще один вопрос: как мне перезапустить процесс, чтобы создать нового игрока?Любой совет будет очень полезным.
Спасибо, Марко