跳转到内容

存储(Construct 3)

插件把 本地(每台设备)和 云端(跟随玩家跨设备)存储都暴露成事件表动作。按数据语义选择 —— 见下面的 本地 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 鉴权会话 —— 它会跟随玩家跨设备和跨渠道。

本地 vs. 云存储,什么时候用哪个

Section titled “本地 vs. 云存储,什么时候用哪个”
本地 当……云端 当……
数据丢了重新生成成本很低丢了会毁掉玩家进度
是设备相关的(静音、画质设置)应该跟着玩家到处走
不需要玩家登录玩家有 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")   ← 在判断 "真的为空" 之前,先重试一次