试图保存分数时出错
本文关键字:出错 保存 | 更新日期: 2023-09-27 17:57:55
以下代码从Google Play排行榜中检索玩家的分数。如果检索到的值高于已存储在设备上的值,则保存分数。
public void Update()
{
PlayGamesPlatform.Instance.LoadScores(
"myLeaderboardID",
LeaderboardStart.PlayerCentered,
100,
LeaderboardCollection.Public,
LeaderboardTimeSpan.AllTime,
(data) =>
{
if (data.Valid)
if (data.Scores[0].value > PlayerPrefs.GetInt("highScore", highScore))
{
PlayerPrefs.SetInt("highScore", data.Scores[0].value);
PlayerPrefs.Save();
}
});
}
不幸的是,我在PlayerPrefs.SetInt("highScore", data.Scores[0].value);
这条线上有两个错误
error CS1502: The best overloaded method match for `UnityEngine.PlayerPrefs.SetInt(string, int)' has some invalid arguments
error CS1503: Argument `#2' cannot convert `long' expression to type `int'
我该怎么解决这个问题?
您必须将data.Scores[0].value
(它是long
)强制转换为Integer
你可以像这样快速而肮脏地完成:
PlayerPrefs.SetInt("highScore", (int)data.Scores[0].value);