Unity+Easy Mobile Pro集成Google Play Games:无公开高分问题求助
问题:Unity + Easy Mobile Pro 分数上报成功但排行榜为空
使用Unity搭配Easy Mobile Pro开发游戏时,调用
Social.ReportScore后得到「Reported score successfully」的调试日志,但打开排行榜却显示「There are no public high scores for this game」,排行榜为空。
显示排行榜代码
else if (buttonName == "ButtonLeaderBoard") { Debug.Log("Score:" + PlayerPrefs.GetInt("totalratings")); Social.ShowLeaderboardUI(); }
上报分数代码
if (!Application.isEditor) { Social.ReportScore(PlayerPrefs.GetInt("totalratings"), Common.gpHighScoresGlobalId, success => { Debug.Log(success ? "Reported score successfully" : "Failed to report score"); }); }
解决方案
- 核对排行榜ID:确认
Common.gpHighScoresGlobalId完全匹配平台后台(如Google Play Console)创建的排行榜ID,注意大小写、特殊字符不要出错。 - 确认玩家登录状态:上报分数前必须确保玩家已完成平台账号登录(比如Google Play Games登录)。可以在上报前加判断:
if (Social.localUser.authenticated) { // 执行上报逻辑 } else { Social.localUser.Authenticate(success => { if (success) { // 登录成功后再上报 } }); } - 检查平台后台设置:
- 确保排行榜设置为「公开可见」,若设为私有或仅测试可见,普通玩家无法查看。
- 确认排行榜的分数类型(整数/浮点数)和你上报的
totalratings类型一致,类型不匹配会导致数据被后台丢弃。
- 测试账号配置:如果用测试账号,需在平台后台将账号加入测试人员列表,未配置的测试账号可能无法同步或显示排行榜数据。
- 增加同步延迟:分数上报到平台后台需要几秒同步时间,不要在上报成功后立刻调用
Social.ShowLeaderboardUI,可以加1-2秒延迟后再显示。 - 验证初始化状态:检查Easy Mobile Pro是否正确初始化了平台服务(如Google Play Games),启动时打印初始化日志,确认没有报错。
- 主动查询分数数据:在显示排行榜前调用
Social.LoadScores验证数据是否存在,排查是UI问题还是数据未真正上报:Social.LoadScores(Common.gpHighScoresGlobalId, scores => { if (scores != null && scores.Length > 0) { Debug.Log("已加载到分数:" + scores[0].value); } else { Debug.Log("未查询到任何分数"); } Social.ShowLeaderboardUI(); });
内容的提问来源于stack exchange,提问作者Vatsal
相关产品推荐
相关产品推荐

