跳转到内容

Unity 调试

本页说明当前公开 SDK 可执行的 Editor 调试流程。安装和最小接入请先查看 安装Quick Start

Core 桌面能力的成功条件是:

  1. InitializeAsync() 返回成功。
  2. IGPRuntimeManager.IsDesktopSessionAttached == true
  3. 目标能力(例如正版校验或成就)返回预期结果。

这不代表已经加入房间或连接 RoomNode Game 数据面。

Unity Editor 里通常不需要填写 Desktop Executable Path Debug Override。留空时, SDK 会按 SDK Environment 启动对应桌面端,并把 Unity Editor 当前进程路径和 appId 交给桌面端,由桌面端联调规则判断是否允许连接。

仅在模拟正式安装路径或排查 exe 绑定时填写该字段。它必须是游戏真实的 Windows 可执行文件路径,例如 D:\builds\MyGame\MyGame.exe,而不是桌面端路径。

  • PROD 使用 IndieGamesPass。
  • PREVIEW 使用 IndieGamesPass Preview。
  • DEV 使用 IndieSpark,并允许显式的 Desktop Launch CommandINDIEGP_DESKTOP_PATH 调试覆盖。

该覆盖只在 Editor 中生效。Build Player 自动使用自身 exe 路径。

可在 IGPConfig 中将 Debug Logging 设置为 ErrorWarningInfoDebug。运行时也可以临时修改:

runtimeManager.Config.debugLogging = IGPLogLevel.Debug;

正式发布建议关闭详细日志。日志和异常不得包含 session token、RoomNode token 或其他连接凭证。

Core 初始化时根据当前 Unity 运行平台按 DesktopMobile 优先级判断,随后只 创建一个 runtime;attach 失败不会切换平台,也没有平台配置项。Multiplayer 不 参与这项选择:无参数创建入口向当前 Core provider 请求 descriptor, descriptor 重载则接受调用方显式传入。Runtime 随后只连接 KCP/TCP reliable 与 可选 UDP unreliable Game lane。

以下旧流程不再作为目标行为,也不应写入新接入验收:

  • Hosted launch package 或 launch ticket 自动进房;
  • Connect Current Test Room
  • 通过 RoomChangedCurrentRoomData 或 Runtime 房间命令判断联机成功。

Multiplayer 的成功条件只包含 IsRuntimeCreated、RoomNode Game lane readiness、 游戏消息收发和传输错误,不包含 Gateway 房间状态。

  • 始终是 detached:确认桌面端已登录,账号允许联调当前 appId,并检查 选择的 SDK 环境。
  • Core 成功但没有房间事件:这是预期的职责边界;Core 不负责房间,Runtime 也不应公开 Gateway 房间事件。
  • Core 成功但 Runtime 未创建:这是 Host descriptor 链路不可用时的预期 软失败;检查 warning,修复链路后调用显式重试接口。