ctx.variables 操作当前游戏运行时的剧本变量。变量值支持 stringnumberbooleannull

API

方法返回值说明
get<T>(name)T | undefined读取变量;不存在时返回 undefined
set<T>(name, value)void写入变量
useValue<T>(name)[T | undefined, setter]React Hook;值变化时重新渲染组件

案例:增加好感度

输入: 变量 affection 当前值为 40,玩家完成一个奖励 15 点好感度的选择。
const before = ctx.variables.get<number>("affection") ?? 0;
ctx.variables.set("affection", before + 15);
const after = ctx.variables.get<number>("affection");

console.log({ before, after });
输出:
{
  "before": 40,
  "after": 55
}
React UI 可以直接订阅这个值:
const [affection, setAffection] = ctx.variables.useValue<number>("affection");

return (
  <button onClick={() => setAffection((affection ?? 0) + 1)}>
    好感度:{affection ?? 0}
  </button>
);
useValue() 是 React Hook。类方法、事件回调和 onRegister 中请使用 get()set()ctx.subscribe