帮助,PlayerPrefs似乎不工作,也不知道为什么。
我有一个简单的游戏,开始于:
void Start()
{
if (PlayerPrefs.GetInt("IsReturningUser") == 1)
{
ScoreLabel.text = "Welcome back, friend!";
}
else
{
PlayerPrefs.SetInt("IsReturningUser", 1);
ScoreLabel.text = "Welcome new player";
}当从Unity (构建和运行连接时)在我的Android设备上进行测试时,它按预期工作--当我第二次返回应用程序时,它会检测到我正在返回。
然而,当我向Google商店发布相同的代码并从那里进行清理时,当我第二次返回应用程序时,它就不会发现我是一个返回的用户。
同样奇怪的是,虽然它不能在我的Android手机上工作,但在我妻子安装在Play Store的手机上,当她第二次打开它时,它会检测到它是一个返回的用户。
有什么想法吗?
团结5.3.6我的手机- Redmi Note 3,Android6.0.1MIUI 8.2稳定妻子电话- OnePlusX
发布于 2017-08-02 15:23:51
我以前也有过类似的问题。我通过在调用其他PlayerPrefs.Save方法之后添加一个PlayerPrefs.Set* ()来解决问题。这将强制所有写入磁盘。
发布于 2017-08-02 15:24:04
当用户第二次打开它时,它会检测到返回用户的身份。
强迫它去拯救。也许这就是问题所在。调用PlayerPrefs.SetInt("IsReturningUser", 1);之后,调用PlayerPrefs.Save()保存它。
如果这一点都没有帮助,那么如果键不存在,就给PlayerPrefs.GetInt函数一个默认值,就像我here那样。只需将PlayerPrefs.GetInt("IsReturningUser") == 1更改为PlayerPrefs.GetInt("IsReturningUser", 0) == 1即可。
最后,如果仍然不能工作,只需使用File.WriteAllBytes并将文件保存到Application.persistentDataPath/yourFolderName。您可以找到完整的示例here。
https://stackoverflow.com/questions/45464744
复制相似问题