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.
Scenario B: full hosted room flow
Section titled “Scenario B: full hosted room flow”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”- Open the current game’s
SDK 联调page in the IGP desktop client - 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”- Open the scene that contains
IGPRuntimeManager - Select the object that has
IGPRuntimeManager - In the Inspector, find
Unity Editor 联调 -> Launch Package JSON - Paste the full JSON payload
- Click
Apply Launch Package
4. Enter Play mode and connect the room
Section titled “4. Enter Play mode and connect the room”- Click the Editor
Playbutton - 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.
Common pitfalls
Section titled “Common pitfalls”- Only seeing
detached: make sure the desktop client is signed in,SDK 联调is enabled, and the account is allowed to debug the currentappId. Connect Current Test Roomnever 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.