在Unity C中存储HighScore#

时间:2015-05-07 00:16:32

标签: c# unity3d

我目前正试图在Unity中存储一个高分。如何保存高分?

这是我到目前为止所拥有的

private float gameTime = 0; //the time (in seconds) that the player has been playing the level

 public void PlayerWin()
{
    gameOver = true;

    //Update the highscore
    float bestTime = 0;

    bool isNewHighscore = false;

    //Pop up the win message
    UIController.GameOver(WIN_MESSAGE, gameTime, bestTime, isNewHighscore);
}

3 个答案:

答案 0 :(得分:4)

您可能希望使用PlayerPrefs。由于看起来好像是通过bestTime变量(浮动类型)跟踪得分,因此您特别想要使用PlayerPerfs.SetFloat

您的代码将类似于:

PlayerPrefs.SetFloat("highScore", bestTime);

答案 1 :(得分:3)

使用关键highScore

保存您的分数
void saveHighScoreee() {
    PlayerPrefs.SetFloat("highScore", 10.0F);
} 

PlayerPrefs.Save();

这就是你获得保存分数的方法

void Example() {
    print(PlayerPrefs.GetFloat("highScore"));
}

了解更多信息,请查看官方文档

http://docs.unity3d.com/ScriptReference/PlayerPrefs.html

答案 2 :(得分:0)

PlayerPrefs将在本地保存一些数据(在特殊文件中)。即使您关闭可执行文件,也可以使用它。

Doc:http://docs.unity3d.com/ScriptReference/PlayerPrefs.html

您可以操纵 Int Float 字符串

在你的情况下,你通常需要int(秒),但你使用float。

  • 如果您想保存数据(bestScore):PlayerPrefs.setFloat("BestScore", bestTime);
  • 如果您想获取数据(bestScore):PlayerPrefs.getFloat("BestScore");