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

使用LootLocker SDK实现全球排行榜时Unity报空引用错误求助

解决Unity中LootLocker排行榜的空引用错误

你遇到的NullReferenceException错误出现在gameManager.cs第62行,也就是调用leaderboard.SubmitScoreRoutine的位置,核心原因是gameManager类中的leaderboard变量未被初始化,处于空引用状态。

修复方案

方法一:通过代码自动获取组件引用

在gameManager的Awake方法中添加对leaderboard组件的查找逻辑,确保变量被正确赋值:

private void Awake()
{
    playerManager = FindObjectOfType<playerManager>();
    leaderboard = FindObjectOfType<leaderboard>(); // 新增该行
}

注意:需确保当前场景中存在挂载了leaderboard脚本的GameObject,否则FindObjectOfType会返回null。

方法二:通过Inspector面板手动赋值

将gameManager中的leaderboard字段改为public:

public leaderboard leaderboard;

然后在Unity编辑器中,选中挂载gameManager的GameObject,在Inspector面板里将挂载了leaderboard脚本的对象拖拽到对应的字段上。

额外优化建议

为避免后续潜在的空引用问题,建议在使用变量前添加空值检查:

public IEnumerator restartGame()
{
    Time.timeScale = 0f;
    yield return new WaitForSecondsRealtime(1f);
    
    if(leaderboard != null && playerManager != null)
    {
        yield return leaderboard.SubmitScoreRoutine(playerManager.highscore);
    }
    else
    {
        Debug.LogError("leaderboard或playerManager未初始化");
    }
    
    SceneManager.LoadScene(0);
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 05:54:09