用途:为运行在 Remix 平台上的 HTML 游戏接入存档与读档工作流,让玩家跨会话保留进度,如分数、已解锁关卡、背包物品等。前提是游戏已包含 RemixSDK 脚本标签,且游戏本身已可运行。
主要能力:初始化 SDK、读取既有存档、在关键节点保存状态。
使用方式:
- 在游戏循环开始前调用 await window.RemixSDK.ready(); 确保 SDK 就绪、已有存档可用。
- 通过 window.RemixSDK.gameState 读取之前保存的数据,其返回类型为 Record<string, unknown> | null | undefined,使用前先判空;没有存档时回退到默认值,例如 const state = savedState ?? { score: 0, level: 1 };。
- 在玩家到达有意义的检查点时调用保存: window.RemixSDK.singlePlayer.actions.saveGameState({ gameState: { score: player.score, level: player.level }, });
典型场景:点击类游戏每次点击后保存 clicks;平台跳跃游戏在关卡切换时保存 level 与 coins。
限制与注意:gameState 必须是可 JSON 序列化的对象,不能包含函数、类实例或循环引用;状态应保持精简,避免存储大数组或临时 UI 状态;应在关卡完成、检查点、购买等有意义的时刻保存,而非每帧保存;首次加载时没有存档,必须做空值保护。