You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity C#中将游戏分数上传至PlayFab排行榜的问题求助

解决PlayFab分数上传问题的步骤

1. 先确认PlayFab后台配置

登录PlayFab控制台,进入【Players】→【Player Statistics】,创建名为PlatFormScore的整数类型统计项,同时配置好排行榜的排序、显示规则等基础设置——这是上传分数的前提,后台没有对应统计项的话上传会直接失败。

2. 补充分数上传的触发逻辑

你已经写好了上传分数的SendLeaderboard方法,但缺少触发它的时机,按以下方式修改代码即可:

修改Score脚本,添加上传调用方法

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

// 建议把类名改成Score,符合C#首字母大写的编码规范
public class score : MonoBehaviour
{
    public static int Score = 0;

    void Start()
    {
        Score = 0;
    }

    void Update()
    {
        GetComponent<UnityEngine.UI.Text>().text = Score.ToString();
    }

    // 新增分数上传触发方法
    public void UploadCurrentScore()
    {
        // 查找场景中的PlayFabManager实例
        PlayFabManager playFabManager = FindObjectOfType<PlayFabManager>();
        if (playFabManager != null)
        {
            playFabManager.SendLeaderboard(Score);
            Debug.Log("正在上传分数:" + Score);
        }
        else
        {
            Debug.LogError("场景里没找到PlayFabManager,请确保该脚本挂载在某个游戏对象上");
        }
    }
}

在合适时机调用上传方法

比如游戏结束(玩家死亡、关卡完成)时触发:

  • 如果是在玩家死亡的处理脚本里:
void OnPlayerDeath()
{
    score scoreScript = FindObjectOfType<score>();
    if (scoreScript != null)
    {
        scoreScript.UploadCurrentScore();
    }
}
  • 也可以通过UI按钮触发:在游戏结束界面的"上传分数"按钮上,绑定score脚本的UploadCurrentScore方法。

3. 验证上传结果

运行游戏,获取分数后触发上传,查看Unity控制台:

  • 显示Successfull leaderboard send代表上传成功;
  • 如果报错,看OnError输出的错误报告排查(比如统计项名称写错、登录未完成等)。

内容的提问来源于stack exchange,提问作者SKY

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 13:31:06