Complete room UI and protocol integration, move game definitions and resources behind bundle entries, publish authoritative version XML, and document single-game builds. Include all current resource changes and experiment artifacts.
4.0 KiB
子游戏 version.xml:网页预览与原生发布共用
日常使用
- 在 Cocos 启动场景的应用组件
SubgameAssets中选择gameKey,并绑定对应游戏页面和房间资源。当前为erqiwang。 - 编辑该游戏唯一的
assets/games/<目录>/resources/<gameKey>/version.xml。 - 网页预览直接读取该文件。Web Desktop / Web Mobile 正常构建后,扩展自动将原文件放在输出根目录,与
index.html同级,不需要手动复制。
当前文件:
- 二七王:
assets/games/erqiwang/resources/erqiwang/version.xml - 模板游戏:
assets/games/template/resources/Game_Surface_3/version.xml
XML 契约
保留原生既有 XML 声明、game 根节点及 agent/game/channel/version 节点,不新增 market 字段。
game/agent@id、game/channel@id:网页身份。game/game@id:所选游戏 gameid。game/version@value:非负安全整数 versionCode,转换为数值后发送至player_login.data.version。game/version@name:字符串展示版本 version,例如1.8;登录页显示v1.8,不由 versionCode 拼造。- 各 name 属性保留供原生读取。
网页 marketid 唯一配置位于应用层 app/composition/build-identity.ts 的 WEB_MARKET_ID,当前为 4。XML 不包含 marketid,因此不重复维护该字段。现有显式 URL 渠道/版本调试覆盖仍遵循通用启动解析器规则;日常预览无需 URL 身份参数,直接使用 XML。
原生环境的 agentid、channelid、marketid 仍通过既有 settings/uAgent_3 接口读取,缺失时报错,不回退到网页身份。游戏与版本信息来自 XML。未更改服务器、原生接口名或登录协议。
当前 XML 保留迁移前的联调身份与数值版本 1;展示版本采用原游戏 XML 的名称(二七王 1.8、模板 1.1)。旧 XML 的 versionCode 不覆盖当前联调版本;正式发布需在这一份 XML 中配置部署要求的实际版本和身份。
接入新游戏
game-config.ts 仅指定 versionResource: '<gameKey>/version',不再保存身份和版本。应用注册表引用该配置。
在编辑器中把游戏的 resources 文件夹配置为 Asset Bundle:名称必须是 version-<gameKey>。运行时只加载所选版本包,读取 <gameKey>/version TextAsset,解析后释放该文本资源。使用编辑器操作资源及 meta,禁止手改序列化文件。
构建扩展 extensions/youle-version-manifest 在当前编辑器已启用;新环境需要在项目扩展管理器中启用。它从构建任务真正的启动场景读取游戏选择,检查唯一 XML、合法版本、对应 bundle 元数据和构建结果的 bundle 列表。构建中修改 XML、启动场景或相关元数据会使构建失败,避免生成身份不一致的包。
框架只消费注入身份,不包含具体游戏配置。新增、选择子游戏不需要修改框架代码或资源。本次未实现排除所有未选游戏代码和资源的完整构建裁剪。
验证记录
- 956 项框架测试、22 项构建扩展测试通过;框架/Cocos 严格类型检查、import boundaries、两款游戏房间资源检查通过。
- 实际 Cocos Game View:二七王解析 gameid 为当前联调值、versionCode=1、version=1.8;登录页显示 v1.8。创建独立测试组件选择模板后读取到模板 gameid、versionCode=1、version=1.1,未发送业务请求。
- 同时修复现有场景切换清理问题:隐藏已销毁的加载节点时不再访问其子节点;实际预览确认销毁后 dispose 成功,有效但缺失必要组件的节点仍明确报错。
- 最终真实 Web Mobile 构建任务 1788872259776 成功,用时 28 秒,输出目录
build/web-mobile-version-xml。构建日志确认扩展在 onAfterBuild 输出根目录 version.xml。 - 源 XML 与导出根目录 XML 的 SHA-256 均为
6871c9a71f7363261c85de52bd72d1d9fc3cc7dfbdf0c1ef949b11367cb657f7。 - Web Desktop 已注册同一 hook 并通过注册测试,尚未另跑真实构建;真实原生壳读取未执行。