4.8 KiB
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 保留以下地址:
BuildModelHexMapPanelhex_build_01_infohex_build_01HexMapAct
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.pngAssets/AssetsPackage/UI/common/mask.pngAssets/AssetsPackage/Animation/ui/FishingMapPanel/FishingMapPanel.controllerAssets/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:包含HexBuildinggroup/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 先恢复正常,否则容易删错依赖。