如何节省统一所花费的最短时间?



我正在unity 3d中制作一个迷宫游戏,完成关卡所花费的时间最少是高分。有没有办法使用 Playerprefs 保存高分?脚本是在 C# 中完成的。

您可以使用获取/设置评估器来简化它。

public class GameManager: MonoBehavior {
...
public float HighScore {
get {
return PlayerPrefs.GetFloat("HIGHSCORE", 0);
}
set {
if(value > HighScore) {
PlayerPrefs.SetFloat("HIGHSCORE", value);
}
}
}
...
public void GameOver() {
HighScore = currentScore;
}
}

你可以先把这个检查放在你的主脚本中 唤醒函数:

if(!PlayerPrefs.HasKey("HighestScore"))
{
PlayerPrefs.SetString("HighestScore", "keep some big number");
}

或者也可以使用(优选(

if(!PlayerPrefs.HasKey("HighestScore"))
{
PlayerPrefs.SetFloat("HighestScore", 100000f);
}

然后当特定级别结束时,您需要保存分数 将现有的玩家偏好与当前的玩家分数进行比较。

例如对于浮点

if(PlayerPrefs.GetFloat("HighestScore")>=current_score)
{
PlayerPrefs.SetFloat("HighestScore",current_score);
}

希望这有帮助!

谢谢,我得到了答案!只需要检查第一轮是否已经发生。

// Start is called before the first frame update
void Start()
{

HighScore = score;

WinScore.text = PlayerPrefs.GetFloat("HighScore").ToString();

}
// Update is called once per frame
void Update()
{
if(PlayerPrefs.GetFloat("HighScore") == 0f)
{
PlayerPrefs.SetFloat("HighScore", (float)HighScore);
WinScore.text = HighScore.ToString();

}
if (HighScore < PlayerPrefs.GetFloat("HighScore")){ 
PlayerPrefs.SetFloat("HighScoreEasy", (float)HighScore);
WinScore.text = HighScore.ToString();

}
}

最新更新