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 问题的主要内容,如果未能解决你的问题,请参考以下文章

Unity3D存储PlayerPrefs 用法

Unity3d数据存储 PlayerPrefs,XML,Json数据的存储与解析

[Unity3D]手机3D游戏开发:场景切换与数据存储(PlayerPrefs 类的介绍与使用)

数据持久化PlayerPrefs

Unity3DUnity3D之 注册表动态存取游戏存档——PlayerPrefs类

Unity 3D 之Playerprefs