首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >United3D中的PlayerPrefs不工作(有时)

United3D中的PlayerPrefs不工作(有时)
EN

Stack Overflow用户
提问于 2017-08-02 15:15:34
回答 2查看 1.9K关注 0票数 2

帮助,PlayerPrefs似乎不工作,也不知道为什么。

我有一个简单的游戏,开始于:

代码语言:javascript
复制
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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-08-02 15:23:51

我以前也有过类似的问题。我通过在调用其他PlayerPrefs.Save方法之后添加一个PlayerPrefs.Set* ()来解决问题。这将强制所有写入磁盘。

票数 4
EN

Stack Overflow用户

发布于 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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45464744

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档