本地联调模块 private
本地联调模块
目标
在隔离配置下启动客户端、Login/Lobby/Battle 服务,并快速判断失败位于地址、Session、协议、地图数据还是 Unity 运行时。
启动顺序
- 启动 Redis、MySQL、ZooKeeper(若服务端配置启用)。
- 启动 Login,确认监听端口。
- 启动 Lobby,确认注册或固定地址可达。
- 启动 Battle/战区,确认地图数据目录存在。
- Unity 的 ServerCfg 指向 127.0.0.1,跑登录 -> 大厅 -> 房间。
client/Jenny-Server.bat 只负责本地生成/启动 Entitas/Jenny 工具链,不等价于 Login/Lobby/Battle 游戏服务器;真正服务端进程在服务端工程目录。
分层排错
| 现象 | 首查位置 | 结论 |
|---|---|---|
| 登录失败 | NetworkManager.CheckSessionLogin | IP/端口、防火墙、Login |
| 进不了大厅 | OnEnterLobby 的 ip/port/sessionId | Login 返回地址或 Session |
| 进不了战区 | CreateSessionBattle 参数 | 分配、端口、battleId |
| 进图黑屏 | 地图加载系统与 Maps/Data | 地图包、Lightmap、NavMesh |
| 怪物不动 | NavMeshTool.IsOnNavMesh | 烘焙区域或 Agent 参数 |
日志
- Unity Editor 下 NetworkManager 使用 NetLog.Instance,Release 使用 ReleaseLogger。
- 保留一份登录到进图完整日志,记录时间、SessionId、节点地址和地图 ID。
- 重连记录 CanLobbyTip、CanBattleTip、IsBattleReconnecting。
- 改脚本后等待编译完成,再看 Console error。
最小回归
启动 -> 登录 -> 大厅 -> 创建房间 -> 战区
-> 移动 -> 触发一波怪 -> 击杀拾取
-> 断开 Lobby -> 重连 -> 返回大厅 -> 退出登录