unity3d Firebase Database Unity无法使用从数据库读取的值设置playerpref float

nukf8bse  于 2022-11-16  发布在  其他
关注(0)|答案(1)|浏览(107)

我需要从数据库中读取硬币值,并将其保存在playerprefs中,问题是,即使阅读工作和第一次打印()打印出从数据库读取的正确值,该值仍然不会与playerprefs一起保存,并且它没有显示错误。我尝试了很多方法,从技术上讲,这些方法和我在这里发布的代码做的是一样的事情,但是没有一种方法有效,而且它们似乎都卡在了播放器优选保存部分。
更新/编辑:我测试了一下,除了int和float之外,其他类型的变量都可以读取,string也没有问题。这对我来说还是很奇怪。

**SOLVED:**所以这可能是一个愚蠢的方法来做到这一点,但这是唯一的方法,我可以。而不是保存数字作为一个int在数据库中,我保存它作为一个字符串,当我从数据库读取字符串我解析成一个数字,然后保存该数字与playerprefs。这是一个真正奇怪的错误和奇怪的方法,我解决了它,哈哈

await databaseReference.Child(FirebaseAuth.DefaultInstance.CurrentUser.UserId.ToString()).Child("rockets").GetValueAsync().ContinueWith((load =>
            {
                if (load.IsCanceled)
                {
                    return;
                }
                else if (load.IsFaulted)
                {
                    return;
                }
                else
                {
                    DataSnapshot coins = load.Result;
                    print(coins.Value);
                    PlayerPrefs.SetFloat("coins", (int)coins.Value);
                    PlayerPrefs.Save();
                    print("COINS SET: " + coins.Value);
                }
            }));
mctunoxg

mctunoxg1#

在playerprefs中设置值之后,还必须调用保存()来提交这些值。

相关问题