我需要从数据库中读取硬币值,并将其保存在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);
}
}));
1条答案
按热度按时间mctunoxg1#
在playerprefs中设置值之后,还必须调用保存()来提交这些值。