跳到主要内容

创建新项目与模板采用

适用客户端/生成器基线 be4326b5b47794328accc120b6e250497af37191,Unity 2022.3.62f2。本文依据正式请求 Schema、生成器及模板文档说明采用步骤;不提供项目生成、包获取、配置导出或 Unity 运行成功的回执。

接收的具体内容​

正式交付是固定 client/config 两仓组合,保留模板完整内容并执行约定的身份、路径和依赖固定化。它不是按 Profile 裁剪后的产品,也不包括后端、美术、门户岗位模板的自动组合。交付后,复制的项目内容由接收者维护,上游库通过包维护。T1 T2

固定 manifest 声明 framework 2.8.38、libgameplay 1.1.0、match3-core 0.1.1、wjugui 1.9.0 等;不要以所读 framework 源的 2.8.45 替换模板基线。包获取和 source-to-dist 尚需独立证明。T3

准备真实交付请求​

先确定资源审阅和采用范围,再提供真实请求。Schema 为 template-delivery/1;全部字段必填,未知字段、重复 JSON 键、非精确 SHA 和控制字符被拒绝。不要添加 Profile、role、分支名或旧 CLI 参数。T4

输入具体约束与接收责任
schema_version字符串,唯一支持 template-delivery/1
request_id、input_revision、related_request_id请求 ID 使用字母/数字起始及字母数字、点、下划线、连字符;首次关联字段可为空,修订说明原请求关系
project_key小写字母起始,后续仅小写字母/数字/下划线,最长 63 字符;用于客户端目录、config 目录和协议命名
purpose、recipientproduct 或 engineering-drill;明确接收者和复制内容维护者
sources.client、sources.config无凭据 HTTP(S) 仓库 URL及各自完整 40 位小写提交 SHA;源 URL 不带查询、用户信息或 fragment
generator_commit必须等于 client.commit;运行中的生成源码须属于同一提交
product显式 company_name、product_name、三段 version、Android identifier;无默认产品身份
unity_version、content唯一支持 2022.3.62f2 和 retained-client-config
output尚不存在的绝对目录;父目录已经存在;不覆盖已有目标、不自动创建父目录
resourcesrights_status 为 unresolved 或 evidence-provided;同时提供 evidence 和 limitations。后者状态要求非空 evidence,仍不等于授权已获批

全部叶字段都是字符串,input_revision 也必须是字符串。related_request_id 首次可为空;resources.evidence 允许空字符串,但 rights_status 为 evidence-provided 时生成器要求非空 evidence。其他字段的格式与长度约束仍须满足表格及固定 Schema。

完整嵌套结构如下。尖括号项是待替换的字段说明,不是有效交付请求;真实请求不能保留这些占位值。sources、product、resources 是对象,不能扁平化或增删键。

{
"schema_version": "template-delivery/1",
"request_id": "<真实请求ID>",
"input_revision": "<字符串形式的输入修订>",
"related_request_id": "",
"project_key": "<小写项目标识>",
"purpose": "engineering-drill",
"recipient": "<明确接收者>",
"output": "<父目录已存在且目标不存在的绝对路径>",
"generator_commit": "<与client.commit相同的40位小写SHA>",
"sources": {
"client": {
"url": "<无凭据HTTP或HTTPS客户端仓库URL>",
"commit": "<客户端完整40位小写SHA>"
},
"config": {
"url": "<无凭据HTTP或HTTPS配置仓库URL>",
"commit": "<配置完整40位小写SHA>"
}
},
"product": {
"company_name": "<公司名>",
"product_name": "<产品名>",
"version": "<数字.数字.数字>",
"android_identifier": "<有效Android标识>"
},
"unity_version": "2022.3.62f2",
"content": "retained-client-config",
"resources": {
"rights_status": "unresolved",
"evidence": "",
"limitations": "<实际资源权限限制>"
}
}

purpose 应按真实意图选择 engineering-drill 或 product。权限材料足够时可使用 evidence-provided 并填写实际 evidence,但该字段本身不授予资源权限。认证由已配置环境或凭据 helper 提供,不放进请求、URL或交接材料。T2 T4

正式入口是 python3 scripts/generate-project.py REQUEST.json,环境需 Python 3.9+、Git、macOS/Linux 本地文件系统的排他重命名能力;当前生成器不支持 Windows。执行所需的四份同 SHA 源码是 scripts/generate-project.py、scripts/template_delivery_contract.py、scripts/template_delivery_content.py、scripts/template_delivery_source.py。本文依据的参考子集缺后两份;实际生成必须使用同 SHA 的完整源树,而不是只复制已读脚本。T5

收到成果后核对什么​

输出根应包含 <project_key>/、<project_key>-config/、HANDOFF.md 和 delivery-receipt.json。回执记录请求、input SHA256、源提交、逐文件摘要与执行位、排除/改变路径、依赖声明和保留的 catalog/readiness;不包含对自身的循环摘要。T2 T5

生成器仅改变已声明的位置:PlayerSettings 身份与 Android ID、WJFrameworkSettings 的 config 兄弟路径、产品/包名服务配置、机器专属构建输出/CDN 路径、config 的 PROJECT_KEY 占位位置,以及 Git 包依赖的精确 lock 固定化。没有普通字符串全仓替换,没有 GUID 改写,没有 Profile 裁剪。消费者应审阅回执中的实际 changed_files,而不是假定每种源结构都受支持。T2

输出状态 generated-review-artifact 表示可追溯审阅成果。来源摘要不证明 registry 不可变、包可获取、config 可导出或 Unity 已运行。上游 .codex、.agents、Git 元数据和模板 GitLab CI 被排除,接收方建立自己的仓库、CI 和 Agent 规则;生成器不创建远端。T2

理解模板的三层启动和替换位置​

固定 README 描述:Launch 场景的 LaunchApp 加载 AppLaunch;应用层 Procedure 链为 Launch → PreloadApp → ShowLoadingView → LoginSdk → Hotfix;游戏层 GameLaunchStarter 驱动 Preload → Game → ChangeScene;GameMain/SceneFlow 选择、启动和停止玩法;GameplayHost 承载 IGameplayMode。T1

新玩法放在 Gameplay/Modes/,按 README 实现 IGameplayMode;独立场景再加 IGameplaySceneMode。在 TemplateGameplayModeFactory 登记 mode key,并向 Assets/Resources/Configs/gameplay_mode.csv 登记配置。模块组合在 GameMain/Composition,按产品决定调整 DefaultGameModuleFactory。当前参考资料没有这些 C# 实现或完整场景,故本稿不给未经核对的接口代码和运行成功声明。

catalog.json 为 catalog-only。minimal/standard/full 不会自动删文件、改依赖或改注册。修改激活清单前列出场景、prefab、asmdef、生成代码及资源依赖;物理裁剪应以正式产品选择和隔离契约为依据。T6

config、资源与采用证据​

模板指南提及 config 7d3c0868a6b3977d73bb5ab154262f8e8eebdc59 的导出脚本、有效 Luban 配置和语言输出缺口。本次未取得 config 实际文件;接收者需要固定 config 源、工具版本、源表、导出物摘要及客户端引用关系。<项目>-config/Language 是模板 README 给出的语言工具默认路径,其他布局由 WJ_GAME_CONFIG_ROOT 指定;这不是导出链已通过的证明。T1 T2

源码包括模板业务、示例和资源,但访问权不推导资产使用权。飞书文图、PSD2UIForm、字体、Spine、Feel 等需各自权利材料;本稿没有读取飞书内容或复制美术资产。

实际采用由独立外部流程补充精确消费者 head 的包解析、冷导入、三层启动/场景切换和产品使用证据。模板 CI 只做 Static。旧项目、旧请求、旧 head 的通过不能替代此次交付;readiness 的 closed 也不能替代实际消费者回执。T1 T2

失败接手​

生成器先写 .incomplete-* 暂存及回执,再排他发布目录。发布前失败保留残留;publish 阶段失败可能结果未知。先核对目标及 delivery/failure 回执,再接受现存成果或提交关联原请求的新请求和新目标。工具不自动清空、恢复或覆盖同目标;发布后回传失败也不撤销输出。T2 T5

仍需的具体资料​

完整同 SHA 生成器的 content/source 模块;真实请求身份/接收者/资源材料;固定 config 源和导出链;client 的 packages-lock 及实际包来源回执;玩法宿主/工厂/场景与装配实现;精确消费者外部 Unity 和实际采用结果。现有材料足以写请求与接手指南,尚不足以宣称完整新项目已运行。

固定来源​

以下是内部固定来源,需要原仓内网和账号权限,公网读者不能保证可访问。链接保留仓库身份、完整 SHA 和相对路径供定位,不授予访问或资源转用权限;正文已独立说明所需字段与使用边界。

相关指南​

阅读路径:版本基线 · 已有项目 · 安装 · 编辑器配置 · 运行时接线 · FAQ