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

4.8 KiB
Raw Permalink Blame History

CatanBuilding 依赖报告

HexGrid 代码依赖

Assets/Scripts/HexGrid/** 仍依赖 ft_3 的基础运行环境。已扫描到的主要依赖包括:

  • Addressables加载 HexMapActHexMapPanelhex_build_01BuildModel 等资源。
  • GContext / asap.core:解析 HexMapDataManager 并发布 UnloadActToNextAct 等事件。
  • AGameAct / GameCoreHexMapAct 的 Act 生命周期基类。
  • UIManager:打开和销毁 HexMapPanel
  • PlayFabMgrHexMapDataManager 仍使用 PlayFab 用户数据保存/加载。
  • JsonConvert:序列化 HexGridMapUserData
  • DOTweenHexGridMediator 相关动画。
  • CinemachineHexMap 摄像机控制。
  • TMPro格子文本和面板文本。
  • UniRx事件订阅生命周期。
  • LubanLib / SimpleJSON / Bright.Serialization生成配置表代码依赖。
  • CodeStage AntiCheatToolkitPlayerData 等基础数据使用 ObscuredInt / ObscuredULong
  • AppsFlyer / MaxSdkAFHelperGEventAggAdsService 等统计和广告脚本依赖。
  • IngameDebugConsoleDebugFuncDeBugPanel 调试入口依赖。
  • WaterCausticsModulesFishCardItem 使用水面焦散效果类型。

结论:当前备份是“独立 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.csHome 入口按钮。
  • 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.dllLitJSON.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 CSExceptionFailedfatal 等阻塞项,仅保留 Unity Licensing 客户端的非阻塞日志。

dotnet build HotUpdate.csproj --no-restore 仍不作为该备份工程的有效验证依据:.csproj 是 Unity 生成文件且被 .gitignore 忽略,当前本地旧生成文件仍可能缺少新导入插件引用。以 Unity batchmode 编译结果为准。

后续建议

如果还要进一步瘦身,优先方向不是删 AssetsPackage,它已经只剩 HexBuilding 直接资源;下一步可以考虑按 manifest.json 实际编译需求裁剪 LocalPackages/Packages/tysdk,但这需要 Unity/UPM 先恢复正常,否则容易删错依赖。