ctx.settings 访问当前扩展在项目中的设置。Studio 会把写入值保存到 project.json;Player 只修改当前运行时内存。
API
| 方法 | 返回值 | 说明 |
|---|---|---|
get<T>(key) | T | undefined | 读取设置,未显式设置时会回退到 schema 默认值 |
set<T>(key, value) | void | 写入设置 |
snapshot() | Record<string, unknown> | 获取当前扩展的设置快照 |
useValue<T>(key) | [T | undefined, setter] | React Hook;订阅单个设置 |
useSnapshot() | Record<string, unknown> | React Hook;订阅整个设置快照 |
subscribe<T>(key, callback) | 取消订阅函数 | 在非 React 代码中订阅设置 |
cross.get(uiId, key) | T | undefined | 读取另一个 UI 模块的设置 |
cross.set(uiId, key, value) | void | 写入另一个 UI 模块的设置 |
cross.subscribe(uiId, key, callback) | 取消订阅函数 | 订阅另一个 UI 模块的设置 |
案例:修改提示框显示时长
输入: 设置 schema 为toastDuration 声明了默认值 3000,当前项目尚未覆盖它。
useValue("toastDuration") 的 UI 会立即重新渲染。
UI 模块内的短 key 会自动绑定到当前 UI 作用域。只有明确需要访问同一扩展的另一个 UI 模块时,才使用
cross。