这是《数字展厅 Unity 项目开发实战分享》系列的第二篇,聚焦没有技术文档的大型 Unity 工程怎么接手梳理。清点不是打开脚本从头读,而是固定扫三处、交叉验证,最后产出一份主要给不会写代码的人看的清单。文中涉及的后台地址、服务凭据、设备 IP 一概不展开。
接手没有技术文档的交付工程,最忌讳"打开脚本从头读"。我的办法是固定扫三处、交叉验证:① Assets\Scripts 下的全部业务脚本,按目录分组清点;② StreamingAssets 下的 JSON 与 txt,它们往往比注释更能说明运行时行为;③ 场景 YAML,反查组件挂载与引用,补上代码看不出的绑定。产出统一为"一节一个模块",写清模块作用、实现方式、关键脚本与方法、触发方式——66 点位项目最后落成 20 节。
| 模块 | 主要脚本 | 触发方式 |
|---|---|---|
| 设备注册 / 登录 | Register.cs | 启动自动执行 |
| MQTT 通信中心 | MQTT.cs | 由注册流程调用 Init |
| 主控分发(台号选择与指令路由) | UIManager.cs | MQTT 消息驱动 |
| 点位数据与显示 | PointsManager.cs / PointController.cs | 启动加载 + 点位更新消息 |
| 路线绘制 | SurveyingAndMappingComponent.cs / InfoShowPanel.cs | 点击"去这里" |
| LED 屏控制 | LED/LEDController.cs | 启动登录 + 导航联动 + 定时刷新 |
| 机械臂控制 | Port/PortController.cs / DebugModel.cs | 启动复位 + 导航联动 + 调试面板 |
| 待机轮播 | Standby.cs | 360s 无操作 |
| 语音搜索 | SearchPanel.cs | 语音按钮 / 音量超阈值唤醒 |
配套盘点表比清单本身更常被同事翻:
| 盘点项 | 内容 |
|---|---|
| 业务脚本 | 根目录 26 个 + LED 5 个 + Port 2 个 |
| 场景 | Regist.unity / Map.unity / Test.unity |
| 配置文件 | 9 个(config.txt、mqttConfig.json、LEDConfig.txt、PortConfig.txt、AngleConfig.txt、CarouselText.txt、build_info.txt、device_auth_token.dat、PointsInfo.json) |
| 点位数据 | 66 条(字段 pointName / pointInfo / distance / angle) |
| 第三方依赖 | 10 项(MQTTnet、UniTask、DOTween、AVProVideo、TouchScript、UnityMainThreadDispatcher、Newtonsoft.Json、LitJson、ZXing、SAPI) |
| 受控外设 | 3 块 LED 屏 + 3 个机械臂 |
问题:第三方依赖最容易漏。
只看 using 会漏掉经资源与场景引入的库(如视频播放组件、触摸手势库)。用"using 清单 + 第三方目录 + 场景组件类型"三头对齐,核对出 10 项;后来换机部署时,这张依赖表直接当环境检查单用。
问题:命名和注释会骗人。
工程里有两个串口实现,Port/PortOne.cs 大部分代码被注释掉了,真正在用的是 PortController.cs。对可疑脚本我坚持两条验证——场景里实际挂的是哪个组件、运行时是否被调用;都不成立就标注为"遗留/未启用"。
问题:后台侧功能也要清点,且要趁登录态在的时候做。
后台是 FastAdmin(ThinkPHP)底的物联网设备工程管理系统,业务链路是项目 → 地图 → 分类/点位目标 → 设备,再叠加一层项目级权限分配。后台菜单受登录态与权限控制,未登录时很多菜单根本不出现,清点必须一次做完,否则清单天然缺项。
问题:外配型工程,"是否需要改代码"必须单列。
另一个展厅大屏项目(8 个展示模块,6 个走小图+大图外配、2 个走视频)我做过一份资源外配对应表,核心三列:资源位、消费方代码、是否需要改代码。它暴露过两类典型问题:某模块瀑布流的目录前缀在代码里写成了 Small/01HXTD,实际目录是 SmallPic/01HXTD,一点该模块就抛 DirectoryNotFoundException,改一行字符串即可,但没有这张表很难定位;以及历史遗留的双重扩展名文件(xxx.mp4.mp4)不会被正常识别。还有几条必须写进注意事项的约定:小图与大图目录必须同名成对、文件名不能含 meta 字样(代码用 Contains("meta") 过滤元数据文件)、窗口分辨率由 Config.txt 的 键@值 控制、部署后配置改动一律重启生效。
这份清单的价值不在"给开发看",而在"给不会写代码的人看":运营换图、换视频、改分辨率,照着对应表操作,就不用来回找开发。
回头看这一方向,能沉淀成方法的其实就一条:接手工程先扫三处再写清单,把"是否需要改代码"这类判断标清楚。都不是什么高深技术,但都是被现场问题反复教育出来的。
(内容由AI生成,仅供参考)