# 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` 相关动画。 - Cinemachine:HexMap 摄像机控制。 - 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 先恢复正常,否则容易删错依赖。