我在Unity中创建了一个相当基本的2D滚动游戏,其中一种游戏模式就是生存。当您死亡时,此屏幕将加载并允许您输入您的高分,一旦按下按钮,该高分将被保存到高分表中。
然而,虽然我可以取代得分高于,但我不能在我的生活中想到将替换的分数换成低于它的位置的逻辑,然后该分数将下降一,然后是下一个得分等。
我所处的阶段在下面,代码只是取代了当前商店删除的所有高分,因为它不是需要做的。我目前有五个通用分数保存到playerprefsX int数组,所以我知道以下所有代码都正常工作,它只是将所有分数下降一个并删除最终得分,这对我来说是个问题
public class high_score_input : Game_Over {
private string name = "highscores";
private int score;
public int[] highscores = new int[5];
// Use this for initialization
void Start () {
GameObject levelcontroller = GameObject.Find ("levelcontroller");
survival_mode survival = levelcontroller.GetComponent<survival_mode> ();
score = survival.setScore();
highscores = PlayerPrefsX.GetIntArray(name);}
void OnGUI()
{
base.OnGUI ();
if (GUI.Button (new Rect (Screen.width/10, 250, 120, 30), "Save High Score"))
{
for(int i = 0;i<highscores.Length;i++)
{
if(score>highscores[i])
{
}
}
PlayerPrefsX.SetIntArray(name, highscores);
}
}
答案 0 :(得分:0)
鉴于它是一个小阵列而且这不是性能关键代码,我会选择一些简单且避免错误的东西:
给定辅助函数,例如Array.Sort
,这应该很快。