帮助,PlayerPrefs似乎无法正常工作,无法找出原因。
我有一个简单的游戏,开头是:
void Start()
{
if (PlayerPrefs.GetInt("IsReturningUser") == 1)
{
ScoreLabel.text = "Welcome back, friend!";
}
else
{
PlayerPrefs.SetInt("IsReturningUser", 1);
ScoreLabel.text = "Welcome new player";
}
在我的Android设备上从Unity编辑器测试时(在连接时构建和运行)它按预期工作 - 当我第二次返回app时它检测到我正在返回。
然而,当我向Google Play商店发布相同的代码并从那里安装干净时,它在我第二次返回应用时从未检测到我是返回用户。
同样奇怪的是,虽然它在我的Android手机上不起作用,但是在Play商店安装的我妻子的手机上,当她第二次打开它时,它会检测为返回用户。
有什么想法吗?
Unity 5.3.6 我的手机 - Redmi Note 3,Android 6.0.1 MIUI 8.2稳定 妻子电话 - OnePlusX
答案 0 :(得分:3)
答案 1 :(得分:2)
当她第二次打开它时,它会检测为返回用户
强制保存。也许这就是问题所在。致电PlayerPrefs.SetInt("IsReturningUser", 1);
后,请致电PlayerPrefs.Save()
保存。
如果这对我们没有帮助,那么如果密钥不存在,就像我here那样,给PlayerPrefs.GetInt
函数一个默认值。只需将PlayerPrefs.GetInt("IsReturningUser") == 1
更改为PlayerPrefs.GetInt("IsReturningUser", 0) == 1
。
最后,如果仍然无效,请使用File.WriteAllBytes
并将文件保存到Application.persistentDataPath/yourFolderName
。您可以找到完整示例here。