Files
back_cantanBuilding/DEPENDENCY_REPORT.md
2026-05-26 16:15:54 +08:00

73 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# CatanBuilding 依赖报告
## HexGrid 代码依赖
`Assets/Scripts/HexGrid/**` 仍依赖 ft_3 的基础运行环境。已扫描到的主要依赖包括:
- Addressables加载 `HexMapAct``HexMapPanel``hex_build_01``BuildModel` 等资源。
- `GContext` / `asap.core`:解析 `HexMapDataManager` 并发布 `UnloadActToNextAct` 等事件。
- `AGameAct` / `GameCore``HexMapAct` 的 Act 生命周期基类。
- `UIManager`:打开和销毁 `HexMapPanel`
- `PlayFabMgr``HexMapDataManager` 仍使用 PlayFab 用户数据保存/加载。
- `JsonConvert`:序列化 `HexGridMapUserData`
- DOTween`HexGridMediator` 相关动画。
- CinemachineHexMap 摄像机控制。
- TMPro格子文本和面板文本。
- UniRx事件订阅生命周期。
结论:当前备份是“独立 Unity 工程备份库”,不是完全解耦的 HexBuilding SDK/package。
## 资源依赖
HexBuilding Addressables group 保留以下地址:
- `BuildModel`
- `HexMapPanel`
- `hex_build_01_info`
- `hex_build_01`
- `HexMapAct`
`hex_build_01.prefab` 的直接 GUID 依赖已导出到:`C:\tmp\catanbuilding-backup-audit\hexbuilding-guid-dependencies.csv`
当前保留的主要资源依赖:
- `Assets/AssetsPackage/art/terrainbuilding/test01/**`
- `Assets/AssetsPackage/UI/common/btn_close.png`
- `Assets/AssetsPackage/UI/common/mask.png`
- `Assets/AssetsPackage/Animation/ui/FishingMapPanel/FishingMapPanel.controller`
- `Assets/ABPackage/pkgFirstPackage/Fonts/**`
## 宿主接入点
- `Assets/Scripts/Stages/LoginStage.cs`:注册 `HexMapDataManager`
- `Assets/Scripts/DataCenter/DataCenter.PlayerData.cs`:加载 `HexMapDataManager.SaveKey` 存档。
- `Assets/Scripts/DataCenter/FishingChallengeManager.cs`:通过 Addressables 加载并切换到 `HexMapAct`
- `Assets/Scripts/UI/Home/HomeBtnHexMap.cs`Home 入口按钮。
- `Assets/Scripts/UI/Home/HomePanel.cs`:包含调试快捷键入口。
- `Assets/Settings/AddressableHelperSetting.asset`:包含 `HexBuilding` group/folder 配置。
## 未剥离耦合点
- `PlayFabMgr` 存档链路仍保留,没有改成本地存档或 mock。
- `GContext` / `UIManager` / `AGameAct` 等 ft_3 框架仍保留。
- `Assets/Scripts/` 暂时完整保留,因为它体积小,且贸然删单个业务目录容易引入编译级引用断裂。
- `LocalPackages/` 只保留 `manifest.json` 实际引用的本地包,以满足 `manifest.json` 的本地包路径。
## 验证阻塞
此前执行备份工程 Unity batchmode 时出现:
```text
[Package Manager] The "path" argument must be of type string. Received undefined
[Package Manager] Failed to update project manifest: The "path" argument must be of type string. Received undefined
```
对照执行源工程 `C:\Users\13999\Documents\ft_3\Client` 后,源工程也出现同样错误。因此该问题不能归因于备份工程拆分,记录为当前 Unity/UPM 或源工程包配置的既有阻塞。
由于 Unity 未通过 Package Manager 初始化阶段,当前未能生成 `.csproj`,因此 `dotnet build HotUpdate.csproj` / `Assembly-CSharp.csproj` 暂不可执行。
## 后续建议
如果还要进一步瘦身,优先方向不是删 `AssetsPackage`,它已经只剩 HexBuilding 直接资源;下一步可以考虑按 `manifest.json` 实际编译需求裁剪 `LocalPackages/``Packages/tysdk`,但这需要 Unity/UPM 先恢复正常,否则容易删错依赖。