

这边第一次打开游戏就直接读存档了 我打包的微信小程序端没问题 怎么一到webgl就这样了
dddeft 下午好🌅🌅🌅
本答案参考ChatGPT-3.5
根据你提供的代码,有可能在Unity转WebGL时出现了PlayerPrefs读取失败的问题。以下是几种可能的解决方案:
确保在WebGL平台上使用PlayerPrefs功能时已启用了相应的权限。请打开Unity编辑器的Player Settings,在WebGL平台的设置中,确保勾选了Player Settings → Publishing Settings → Player permission → PlayerPrefs。
尝试清除浏览器缓存。有时候,浏览器可能会缓存旧的WebGL构建文件,导致PlayerPrefs读取失败。**请在浏览器中按下Ctrl + Shift + Delete组合键,然后选择清除缓存选项。**然后重新加载WebGL游戏,看看是否能够正确读取PlayerPrefs。
使用不同的浏览器进行测试。有时候,特定的浏览器可能会导致PlayerPrefs读取失败。尝试在不同的浏览器(如Chrome、Firefox、Safari等)中运行WebGL游戏,看看问题是否仅限于特定的浏览器。
考虑使用其他方法替代PlayerPrefs。在WebGL平台上,PlayerPrefs可能存在一些限制。考虑尝试使用其他方法,如使用PlayerPrefs的替代库(如IndexedDB)来保存和读取数据。
以下是修改后的代码示例(使用IndexedDB替代PlayerPrefs):
using UnityEngine;
using UnityEngine.Networking;
using System.Collections;
using System.Runtime.InteropServices;
public class WebGLPlayerPrefs : MonoBehaviour
{
[DllImport("__Internal")]
private static extern void SaveData(string key, string value);
[DllImport("__Internal")]
private static extern string LoadData(string key);
private void Start()
{
ReadData();
}
private void ReadData()
{
string data = LoadData("data");
if (!string.IsNullOrEmpty(data))
{
Debug.Log("读取数据成功!" + data);
this.data = JsonUtility.FromJson<PlayerData>(data);
Debug.Log("speed:" + this.data.speed);
}
else
{
this.data = new PlayerData();
SaveData("data", JsonUtility.ToJson(this.data));
Debug.Log("新建数据成功!");
}
}
}
希望以上解决方案能够帮助你解决问题。如果问题仍然存在,请提供更多的信息,以便我们进一步帮助你。