跳到主要内容

已有 Unity 项目接入

以下框架配置步骤来自固定 b29c7b21b93dbb393f9855841e28b43f72ae14ae,其源码声明 framework 2.8.45、Unity 2022.3。模板 be4326b5… 依赖 2.8.38;本文不能保证这些 2.8.45 接口在 2.8.38 存在或行为相同。本文覆盖配置和接线,没有提供该组合的 Unity 运行通过证据。

选择接入范围并保留现有项目事实​

先保存消费者提交、Unity 完整版本/目标平台、manifest/lock、启动场景、程序集边界、资源布局和当前外部运行证据。明确要采用 framework、独立 Energy/SpellIndicator Feature,还是迁移成模板三层装配;它们不是同一个操作。

已有成熟项目可以只接入单一能力。不要直接复制模板完整 GameMain 覆盖产品代码;产品协议、权威状态、服务器结果、场景和资源仍归消费者。各能力的公共接口与适配器由产品组合层连接。

按固定框架 README 配置​

  1. 在 Project Settings → Package Manager 增加 scoped registry:名称 Wenjing Registry,scope com.wenjing,URL 使用包 owner 为该消费者提供的实际地址。固定 README 的内部历史值为 http://192.168.0.170:4873/;使用它需要相应内网和访问权限,不保证服务可达。当前没有公开匿名包下载通道的证据。F1
  2. 在 My Registries 选择 LibWJFramework,采用经消费者确认并有来源回执的精确版本;不要无条件 Install latest。实际 manifest/lock 与 PackageCache 来源需由外部流程记录。
  3. README 的导入入口为 WJFramework - 项目模板 - 导入。当前参考子集没有该菜单的实现和导入清单,因此先由 owner 提供同版本导入文件与覆盖规则,再决定如何与现有项目合并;不能宣称此入口无覆盖副作用。
  4. 在 Project Settings → WJFramework 配置 App/Game 两个资源根;目录项使用 {AppRootPath}、{GameRootPath} 作为路径参数。服务器信息由产品提供,README 允许没有服务器信息时跳过;这不证明依赖服务器的业务可离线运行。
  5. 按产品实际场景、程序集、资源包和路径填写运行配置,审阅生成差异后由合适环境生成。下面说明源码会修改哪些对象,本次没有点击或运行它。

Runtime 配置生成会修改什么​

CustomSettingsProvider.GenerateRuntimeConfig() 会创建/更新 RuntimeConfigPath 下的 AppLauncherInfo、ResourceComponentInfo、VideoComponentInfo、HotfixComponentInfo、FairyGUIComponentInfo、DataTableEntryInfo,设置 LaunchInfo、保存 BuiltInData,并更新启动场景中的序列化引用。F2

生成器取 LaunchScene 的第一个根对象上的 AppLauncher,并在 AppLaunchScene 第一个根对象下查找 Data Table、FairyGUI、Hotfix、Resource、Video。这是固定源码的具体结构假设,不是任意已有场景的自动适配。调用会保存场景与资产,不能把“生成配置”当只读动作。

AppHotfixDllNames 为 null 或空时,AppLauncherInfo 的局部生成函数记录错误并返回。当 PackageVersions 为 null 或空、且 YooAsset 收集器包数 ≤ 0 时,ResourceComponentInfo 的局部生成函数也记录错误并返回;已有 PackageVersions 时直接使用它生成 AssetPackages。外层流程仍继续其他步骤。因此单次函数返回或生成了部分 .asset 不能证明所有配置完整;需要对应证据中的实际文件、日志和场景引用。

YooAsset 与程序集布局​

固定 README 要求 AppAssets/Codes、GameAssets/Codes 下各建 AOT、Hotfix;App 部分加入 AppAssetPackage,Game 部分加入 DefaultPackage,AOT 使用 AOTDll 标签。实际产品若更换名字,需对照 WJFrameworkSettings、收集器、生成配置和资源输出一致性,而不是仅建同名目录。F1

README 给出的 App 热更基础程序集为 WJFramework.Runtime、WJGame.AppMain,Game 为 WJGame.GameMain;App AOT 提及 System、mscorlib、System.Core。它们是固定源的接入提示,不是完整产品依赖清单。平台、asmdef、生成代码和第三方包的要求仍需 owning source 与外部构建证据。

接入独立 Feature 时保留中立适配边界​

Energy 依赖 UGUI,消费者提供配置快照、广告/付费 gateway、文本、反馈和关闭行为,组合 root 登记 EnergyPurchaseUiBridge.Current 并在释放时解除。源码不会替消费者刷新权威购买计数或余额。G1

SpellIndicator 接收中立 target/config/view factory 与世界位置。消费者提供相机转换和战斗/场景逻辑。固定 Controller 的 IsWithinEffectiveArea 恒为 true,Show/UpdatePosition 不自动 clamp;消费端不能把它当施法合法性 gate,详见 SpellIndicator 接入指南。G2

两个模块 README 都要求通过 module-dashboard 发布、module-manager 安装精确版本。现有资料没有打包/导入实现或消费者包回执,因此此处不提供未经核对的工具菜单操作或声称它们已安装。

从外部结果定位接入问题​

现象首先核对的固定事实提供给 owner 的材料
registry / 依赖解析失败实际地址、精确包版本、权限与锁消费者 head、manifest/lock、无凭据错误类别、包来源记录
运行配置缺失或启动报错LaunchInfo、m_Settings、实际场景根结构、组件引用生成文件、场景 diff、外部 job 日志和版本
App/Game 代码或资源加载失败收集器包名、AOTDll、路径与程序集配置资源 manifest、程序集输出与运行配置摘要
Energy 次数/余额不刷新provider 是否更新、adapter 是否仍登记产品事件到 RefreshDisplay 的装配路径及权威结果
指示器位置/释放异常世界坐标、clamp 调用、Hide/EndDragSession、view 生命周期消费者 camera/scene adapter 与精确 head 外部使用证据

这些是源码驱动的排查入口,不是已复现故障结论。验收由精确消费者提交的外部包解析、编译、冷导入和目标使用路径证据支持;网页可读和模板 Static 不替代它们。

仍缺的具体材料​

实际消费者 manifest/lock/场景和资源设置;所选框架版本的导入菜单实现及清单、WJFrameworkSettings/LaunchInfo/各 Info 类型;完整 IResourceManager 与热更新 Procedure;module-manager 安装实现与回执;消费者 Product Adapter;精确 head/平台外部验收。框架 2.8.38 的材料需另取,不能由 2.8.45 反推。

固定来源​

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

相关指南​

阅读路径:版本基线 · 安装 · 编辑器配置 · 框架 · Energy · SpellIndicator · FAQ