插件把 本地(每台设备)和 云端(跟随玩家跨设备)存储都暴露成事件表动作。按数据语义选择 —— 见下面的 本地 vs. 云存储,什么时候用哪个。
Action: FRVR SDK → Set local item ("coins", Coins)
Action: FRVR SDK → Get local item ("coins")
Trigger: FRVR SDK → On local item loaded
Condition: (sub) FRVR SDK → LastKey = "coins"
Action: System → Set Coins to FRVR.SDK.LastValue
- Set local item 是 fire-and-forget。
- Get local item 是异步的 —— 你在
On local item loaded 触发器里响应,通过 LastKey 分支把每个值路由到对应的变量。
形态一样,只是换成云端动词:
Action: FRVR SDK → Set cloud item ("save", SaveJson)
Action: FRVR SDK → Get cloud item ("save")
Trigger: FRVR SDK → On cloud item loaded
Condition: (sub) FRVR SDK → LastKey = "save"
Action: System → Call function "LoadGameFromJson" with (FRVR.SDK.LastValue)
云存储基于玩家的 FRVR 鉴权会话 —— 它会跟随玩家跨设备和跨渠道。
| 用 本地 当…… | 用 云端 当…… |
|---|
| 数据丢了重新生成成本很低 | 丢了会毁掉玩家进度 |
| 是设备相关的(静音、画质设置) | 应该跟着玩家到处走 |
| 不需要玩家登录 | 玩家有 FRVR 鉴权会话 |
游戏存档、解锁内容、内购发放的内容 —— 都应该放在云端。偏好和缓存放本地。
云端读取拿不到值可能意味着:新玩家、鉴权还没就绪、或者偶发的网络抖动。不要立刻覆盖成全新状态 —— 加防抖或重试,确认它真是新账号再说。
Trigger: FRVR SDK → On cloud item loaded
Condition: FRVR SDK → LastKey = "save"
Condition: FRVR SDK → LastValue = ""
System → Wait 2 seconds
FRVR SDK → Get cloud item ("save") ← 在判断 "真的为空" 之前,先重试一次