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

如何实现点击按钮重置PlayerPrefs存储的最高分功能

代码问题及修正方案

你的现有代码存在3个核心问题导致无法生效:

  • PlayerPrefs.SetInt() 是无返回值的方法,你用int类型变量接收它的返回值属于语法错误,会直接导致代码编译不通过
  • 方法声明了public int返回值类型,但方法内部没有写return语句,属于语法错误
  • 修改完PlayerPrefs后没有手动触发保存,也没有同步更新UI显示,会出现存储值已经修改但界面显示不变的问题

修正后的重置代码

public class resetscore : MonoBehaviour
{
    // 如果你使用TextMeshPro显示最高分,声明对应引用,运行前将UI组件拖入对应插槽
    public TMPro.TMP_Text HighscoreText; 
    // 如果你使用UGUI原生Text,替换为下面的声明
    // public Text HighscoreText;

    public void DeleteHighscore()
    {
        // 重置存储的最高分值
        PlayerPrefs.SetInt("Highscore", 0);
        // 立即将修改写入本地存储,避免进程意外退出导致修改丢失
        PlayerPrefs.Save();
        // 同步更新界面上的最高分显示
        if(HighscoreText != null)
        {
            HighscoreText.text = "0";
        }
    }
}

配置检查项

  • 确保你把挂载了resetscore脚本的GameObject拖入按钮的OnClick事件面板
  • OnClick事件的下拉框选中resetscore分类下的DeleteHighscore方法,不要选带参数的重载
  • 如果最高分UI组件在其他脚本中管理,可以直接调用对应脚本的刷新最高分逻辑,不需要单独传递UI引用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 00:18:03