如何实现点击按钮重置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
相关产品推荐
相关产品推荐

