87 lines
4.8 KiB
Markdown
87 lines
4.8 KiB
Markdown
# 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 先恢复正常,否则容易删错依赖。
|
||
|