Unity3D PlayerPrefs 问题

Posted

技术标签:

【中文标题】Unity3D PlayerPrefs 问题【英文标题】:Unity3D PlayerPrefs issue 【发布时间】:2015-03-29 03:26:33 【问题描述】:

我遇到了一个问题,当我将分数从 10 降低到 9 时,它无论如何都会改变高分,即使它是一个较低的数字。代码如下:

var score : int;
var highscore : int;

function Start()
    highscore = PlayerPrefs.GetInt("highscore");
    score = 9;
    if(score > highscore)
        highscore = score;
        PlayerPrefs.Save();
    


function OnGUI()
    GUI.Label(Rect(10,10,100,20), score.ToString() );
    GUI.Label(Rect(10,50,100,20), highscore.ToString() );

【问题讨论】:

【参考方案1】:

您正在使用GetInt,但之后您没有使用SetInt,因此您的PlayerPrefs.Save() 调用实际上并没有保存任何新内容。

尝试在Save() 之前使用SetInt

if(score > highscore)
    highscore = score;
    PlayerPrefs.SetInt("highscore", highscore);
    PlayerPrefs.Save();

【讨论】:

以上是关于Unity3D PlayerPrefs 问题的主要内容,如果未能解决你的问题,请参考以下文章