Files
back_cantanBuilding/DEPENDENCY_REPORT.md
2026-05-26 18:04:00 +08:00

87 lines
4.8 KiB
Markdown
Raw Permalink 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事件订阅生命周期。
- LubanLib / SimpleJSON / Bright.Serialization生成配置表代码依赖。
- CodeStage AntiCheatToolkit`PlayerData` 等基础数据使用 `ObscuredInt` / `ObscuredULong`
- AppsFlyer / MaxSdk`AFHelper``GEvent``AggAdsService` 等统计和广告脚本依赖。
- IngameDebugConsole`DebugFunc``DeBugPanel` 调试入口依赖。
- WaterCausticsModules`FishCardItem` 使用水面焦散效果类型。
结论:当前备份是“独立 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` 的本地包路径。
## 验证记录
修复独立工程打开问题时补齐了以下缺失依赖:
- `Assets/CoreLib/``asap.core.dll``LitJSON.dll`
- `Assets/Plugins/Demigiant/`DOTween / DOTweenPro。
- `Assets/Plugins/SignalR/``System.Diagnostics.DiagnosticSource.dll` 及 SignalR 依赖。
- `Assets/Plugins/LubanLib/``Bright.Serialization` / `SimpleJSON`
- `Assets/Plugins/CodeStage/`AntiCheatToolkit obscured types。
- `Assets/AppsFlyer/`AppsFlyer SDK 及其 `Castle.Core.dll` / `NSubstitute.dll` 测试依赖。
- `Assets/MaxSdk/`AppLovin MAX SDK 脚本。
- `Assets/Plugins/IngameDebugConsole/`:运行时调试控制台。
- `Assets/Plugins/WaterCausticsModules/`:鱼卡 UI 依赖的水面焦散效果;只保留 Effect / TexGenerator 编译所需脚本和 shader未保留 demo 场景与示例资源。
同时在 `Packages/tysdk/Runtime/TYSdkFacade.cs` 为非 Android/iOS 的 Editor/Standalone 编译添加 `clientid` 兜底,避免首次打开备份工程时因默认 Standalone build target 触发未定义变量。
同时在 `Assets/Scripts/Services/UserService.cs` 修复非 Android/iOS 的 `LoginWithCustomIDRequest` 字段赋值PlayFab SDK 的该请求类型没有 `AndroidDeviceId` 字段Standalone Editor 下应使用 `CustomId`
最新 Unity batchmode 验证日志:`C:\tmp\catanbuilding-backup-open-fix-7.log`。本次未发现 `error CS``Exception``Failed``fatal` 等阻塞项,仅保留 Unity Licensing 客户端的非阻塞日志。
`dotnet build HotUpdate.csproj --no-restore` 仍不作为该备份工程的有效验证依据:`.csproj` 是 Unity 生成文件且被 `.gitignore` 忽略,当前本地旧生成文件仍可能缺少新导入插件引用。以 Unity batchmode 编译结果为准。
## 后续建议
如果还要进一步瘦身,优先方向不是删 `AssetsPackage`,它已经只剩 HexBuilding 直接资源;下一步可以考虑按 `manifest.json` 实际编译需求裁剪 `LocalPackages/``Packages/tysdk`,但这需要 Unity/UPM 先恢复正常,否则容易删错依赖。