本地联调模块 private

本地联调模块

目标

在隔离配置下启动客户端、Login/Lobby/Battle 服务,并快速判断失败位于地址、Session、协议、地图数据还是 Unity 运行时。

启动顺序

  1. 启动 Redis、MySQL、ZooKeeper(若服务端配置启用)。
  2. 启动 Login,确认监听端口。
  3. 启动 Lobby,确认注册或固定地址可达。
  4. 启动 Battle/战区,确认地图数据目录存在。
  5. Unity 的 ServerCfg 指向 127.0.0.1,跑登录 -> 大厅 -> 房间。

client/Jenny-Server.bat 只负责本地生成/启动 Entitas/Jenny 工具链,不等价于 Login/Lobby/Battle 游戏服务器;真正服务端进程在服务端工程目录。

分层排错

现象首查位置结论
登录失败NetworkManager.CheckSessionLoginIP/端口、防火墙、Login
进不了大厅OnEnterLobby 的 ip/port/sessionIdLogin 返回地址或 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 -> 重连 -> 返回大厅 -> 退出登录