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

Unity CloudSave与本地双系统适配:GameData序列化问题求助

解决Unity CloudSave加载后JSON格式错误与GameData解析问题

问题根源

你当前的代码存在三个核心错误:

  • 错误移除了JSON字符串首尾的{},破坏了JSON的完整结构
  • 对云端返回的已有JSON字符串再次调用JsonConvert.SerializeObject,导致字符串被额外转义包裹,生成无效格式
  • 使用JsonUtility.FromJson解析不完整的JSON,无法正确映射到GameData类型

修正方案

以下是修正后的LoadData方法代码,同时实现获取正确JSON字符串和生成GameData实例的需求:

public static async void LoadData()
{
    if (counter == 0)
    {
        await UnityServices.InitializeAsync();
        await AuthenticationService.Instance.SignInAnonymouslyAsync();
        counter++;
    }

    data = await CloudSaveService.Instance.Data.LoadAsync(new HashSet<string> { PLAYER_CLOUD_KEY});

    // 1. 获取云端存储的完整JSON字符串(本身就是带{}的合法格式)
    string cloudJson = data[PLAYER_CLOUD_KEY];
    myJson = cloudJson; // 这就是符合本地要求的完整JSON

    // 2. 将JSON解析为GameData实例(二选一即可)
    // 方式一:使用Unity自带的JsonUtility(需GameData标记[Serializable])
    gameData = JsonUtility.FromJson<GameData>(cloudJson);

    // 方式二:使用Newtonsoft.Json(如果需要更复杂的序列化支持)
    // gameData = JsonConvert.DeserializeObject<GameData>(cloudJson);

    Debug.Log($"合法JSON格式: {myJson}");
    Debug.Log($"解析后的GameData: Panda={gameData.Panda}, Peacock={gameData.Peacock}");
}

关键说明

  • CloudSave存储的PLAYER_CLOUD_KEY对应的值,本身就是你当初上传的完整GameData序列化JSON(带{}),不需要做任何Trim操作
  • 直接使用原始JSON即可同时满足:本地文件写入的格式要求,以及GameData的解析需求
  • 若你是通过CloudSave上传数据,确保上传时也是将完整的GameData序列化JSON存入,示例上传代码:
public static async void SaveDataToCloud(GameData saveData)
{
    // 将GameData序列化为完整JSON
    string saveJson = JsonUtility.ToJson(saveData);
    // 上传到CloudSave
    await CloudSaveService.Instance.Data.SaveAsync(new Dictionary<string, string>
    {
        { PLAYER_CLOUD_KEY, saveJson }
    });
    // 同时写入本地文件
    File.WriteAllText(Application.persistentDataPath + "/savefile.json", saveJson);
}

本地文件写入验证

修正后生成的myJson格式会和你要求的一致:

{
   "Panda":false,
   "Peacock":false,
   "RedPanda":false,
   "Sloth":false,
   "Tapir":false
}

此时用File.WriteAllText写入本地文件,不会出现清空数据的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 16:13:13