试图保存分数时出错

本文关键字:出错 保存 | 更新日期: 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);