Files
back_cantanBuilding/DEPENDENCY_REPORT.md
2026-05-26 16:15:54 +08:00

3.4 KiB
Raw 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事件订阅生命周期。

结论:当前备份是“独立 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 的本地包路径。

验证阻塞

此前执行备份工程 Unity batchmode 时出现:

[Package Manager] The "path" argument must be of type string. Received undefined
[Package Manager] Failed to update project manifest: The "path" argument must be of type string. Received undefined

对照执行源工程 C:\Users\13999\Documents\ft_3\Client 后,源工程也出现同样错误。因此该问题不能归因于备份工程拆分,记录为当前 Unity/UPM 或源工程包配置的既有阻塞。

由于 Unity 未通过 Package Manager 初始化阶段,当前未能生成 .csproj,因此 dotnet build HotUpdate.csproj / Assembly-CSharp.csproj 暂不可执行。

后续建议

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