Unity macOS打包游戏删除后PlayerPrefs残留,如何清除构建版本的PlayerPrefs
解决方案
方法1:手动删除配置文件(推荐,旧游戏已删除的场景直接用)
macOS 下 Unity 构建的 Mac 平台游戏,PlayerPrefs 全部存在用户偏好设置目录的独立 plist 文件中,直接删除对应文件即可清除残留:
- 打开 Finder,按下快捷键
Shift + Command + G唤起路径跳转框 - 输入路径
~/Library/Preferences后回车进入目录 - 找到名称格式为
com.【你填的公司名】.【你填的产品名】.plist的文件(公司名和产品名对应 Unity 项目Player Settings里设置的 Company Name 和 Product Name),直接删除该文件 - 若删除后还是有残留,打开终端执行命令
defaults delete com.【你填的公司名】.【你填的产品名】清空系统偏好缓存即可彻底清除
方法2:运行时代码清除(适合游戏仍可正常运行的场景)
你之前调用 PlayerPrefs.DeleteAll() 无效,是因为你是在 Unity 编辑器环境下执行的代码,只能清除编辑器对应的 PlayerPrefs,无法触达独立构建版本的存储。要清除构建版本的存储,需要在打包出来的游戏运行时执行以下代码:
// 执行删除所有PlayerPrefs操作 PlayerPrefs.DeleteAll(); // 强制立即写入磁盘,避免游戏意外退出导致操作不生效 PlayerPrefs.Save();
你可以临时在游戏内加一个调试按钮触发这段逻辑,运行一次构建版本后就完成清除,不需要该功能后续删掉相关代码即可。
原操作无效原因说明
Unity 编辑器和独立构建版本的 PlayerPrefs 是分开存储的:
- 编辑器的 PlayerPrefs 存储在
com.unity3d.UnityEditor.plist文件内,按项目区分存储字段 - 独立构建版本的 PlayerPrefs 是单独的 plist 文件,编辑器侧的所有清除操作(包括
Edit → Clear All Player Preferences菜单)都不会操作独立构建的存储文件,因此之前的操作无法生效。
内容的提问来源于stack exchange,提问作者Queen Ellery
相关产品推荐
相关产品推荐

