备份CatanBuilding瘦身独立工程

This commit is contained in:
JSD\13999
2026-05-26 16:15:54 +08:00
commit 2d0e6a61b7
12001 changed files with 2431925 additions and 0 deletions

72
DEPENDENCY_REPORT.md Normal file
View File

@@ -0,0 +1,72 @@
# 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 先恢复正常,否则容易删错依赖。