Skip to content

Unity Debugging

This page covers how to actually run debugging inside Unity Editor. For package installation and minimum setup, start with Installation and Quick Start.

There are two common debugging scenarios for the IGP SDK inside the Editor:

  • Scenario A: only validate capabilities provided by the IGP desktop client (game authorization, achievement unlock, progress reporting)
  • Scenario B: validate the full hosted room flow (launch ticket, auto-join room, ready, start, finish, room messages, state, RPC, and the data plane)

Single-player games, or games that are not integrating multiplayer rooms yet, usually only need Scenario A. Scenario B is only required for rooms, realtime messaging, state, RPC, Mirror Transport, KCP, or runtime map changes.

Scenario A: desktop-client-only capabilities

Section titled “Scenario A: desktop-client-only capabilities”

This path uses the desktop session and does not depend on room context. Use it for room-independent capabilities such as game authorization and achievements.

When validating desktop capabilities directly inside Unity Editor, you usually do not need to fill Desktop Executable Path Debug Override.

If this path is empty, the SDK launches the desktop client for the selected environment and sends the Unity Editor process path together with the appId; the desktop SDK debugging rules decide whether the attach is allowed. Fill this path only when you need to simulate an installed game executable or debug local executable binding. In that case, use the real Windows executable path of the game (for example D:\builds\MyGame\MyGame.exe), not the desktop client path.

This setting is not the desktop client path. The desktop launch command is resolved from SDK Environment: PROD uses IndieGamesPass, PREVIEW uses IndieGamesPass Preview, and DEV uses IndieSpark. In PROD and PREVIEW, the SDK only starts the matching official trusted desktop client; explicit Desktop Launch Command or INDIEGP_DESKTOP_PATH overrides are for DEV debugging setups.

This path uses the hosted session and only applies to capabilities that need room context. A single-player integration does not need to create a test room or choose a map.

When you need the full end-to-end path starting from the launch ticket:

1. Enter the current game’s test room first

Section titled “1. Enter the current game’s test room first”
  1. Open the current game’s SDK 联调 page in the IGP desktop client
  2. Create a test room first, or join a test room that already exists

2. Generate the Unity launch package in the desktop client

Section titled “2. Generate the Unity launch package in the desktop client”

Open the SDK 联调 page in the IGP desktop client, generate the Unity 启动包, and copy the JSON payload.

3. Paste the launch package into Runtime Manager

Section titled “3. Paste the launch package into Runtime Manager”
  1. Open the scene that contains IGPRuntimeManager
  2. Select the object that has IGPRuntimeManager
  3. In the Inspector, find Unity Editor 联调 -> Launch Package JSON
  4. Paste the full JSON payload
  5. Click Apply Launch Package
  1. Click the Editor Play button
  2. In the Inspector, click Connect Current Test Room

The whole process is symmetric for host and guest: use the host launch package when validating the host path, and the guest launch package when validating the guest path.

  • Only seeing detached: make sure the desktop client is signed in, SDK 联调 is enabled, and the account is allowed to debug the current appId.
  • Connect Current Test Room never connects: you have not actually entered the current game’s test room in the IGP desktop client.
  • No room join after Apply Launch Package: the launch package has expired and the ticket timed out. Go back to the desktop client and generate a fresh one.
  • Both clients are running but cannot see each other: both sides used the same launch package. Each player must use their own package.