三种形态
| 形态 | 包含内容 | 适合场景 |
|---|---|---|
| 纯界面扩展 | extension.json + ui/ | 标题页、菜单、HUD、弹窗和系统界面皮肤 |
| 程序扩展 | TypeScript、SDK 和构建产物 | 剧本方法、复杂动态 UI、小游戏和服务接入 |
| 混合扩展 | 可视化 UI + TypeScript 控制器 | 用编辑器排版,再由代码补充动态行为 |
扩展能做什么
| 能力 | 说明 | 典型用途 |
|---|---|---|
| 可视化界面 | 用 27 种元素搭建 UI,不需要构建程序 | 标题、存读档、设置、菜单、HUD |
| 程序 UI | 通过 Extension 的 render() 渲染 React 组件 | 小游戏、Canvas、复杂动态界面 |
| 剧本方法 | 提供可在剧本中调用的逻辑 | 发放奖励、解锁内容、调用外部服务 |
| 章节调度策略 | 为高级调度选择下一章或结束流程 | 地图选点、日程、回合和周目结构 |
| 设置与存档 | 声明项目设置和随存档持久化的数据 | 背包、成就、周目和解锁记录 |
| 系统接管 | 替换系统插槽或内置对话组件 | 完整游戏壳、特殊对话交互 |
Extension 基类声明。一个扩展可以导出多个子模块,也可以让程序通过 ctx.visualUI控制可视化界面。
默认游戏壳
Studio 自带不能卸载的「默认游戏壳」扩展(avg.internal.default-shell),提供:
- 标题画面;
- 存档和读档;
- 设置;
- 历史记录与语音重放;
- CG、音乐和剧情片段鉴赏;
- 剧情选项和玩家输入界面;
- 游戏工具栏、输入对话框和消息框。
scheduleStrategy()。
程序扩展的技术栈
只有初始化程序后,扩展才会加入以下工具链:- TypeScript:扩展源码;
- React:程序 UI;
- Vite:以 ESM 库模式构建;
- @avg-studio/sdk:Extension 基类、运行时 API 和类型定义。
npm run build 单次构建,或使用 npm run watch 持续监听。