Documentation

​
​

Development

User Acquisition

Monetization

Industry

Multiplayer Services SDK

All Services

Multiplayer Services SDK

Multiplayer
​
​
Multiplayer Services SDK
  • Overview
  • Get started
  • Use multiplayer sessions
  • Manage sessions
  • Connect players through a relay
  • Networking
  • Matchmaking
  • Monitor and debug sessions
    • Network connection management
    • Sessions observability
      • Session Viewer
      • Session Observer
      • Session events
      • Session player events
      • Matchmaker session observability
    • Verbose logging in multiplayer games
  • Tutorials
  • Reference
  1. Multiplayer Services SDK

The Session Observer

Track events related to session creation using the SessionObserver class.
Read time 1 minute
Last updated 9 months ago

You can use the
SessionObserver
class to track events related to an
ISession
of a specific
ISession.Type
. Use this class to get events when a session is created, is pending creation, or has failed to be created for a specific session type. It's possible to create an instance of this class independently of the
UnityServices
initialization, allowing independent systems in a project to track session-related events without handling the
Unity Services
and
MultiplayerService
states themselves.
The following code demonstrates this class's usage:
void OnAddingSessionStarted(AddingSessionOptions addingSessionOptions) { Debug.Log($"A session of type {addingSessionOptions.Type} is being added.");}void OnSessionAdded(ISession session) { Debug.Log($"A session of type {session.Type} has been added.");}void OnAddingSessionFailed(AddingSessionOptions addingSessionOptions, SessionException exception) { Debug.Log($"The addition of a session of type {addingSessionOptions.Type} has failed with message {exception.Message}.");}// ...async Task CreateSession() { async using (var sessionObserver = new SessionObserver("my-session-type")) { sessionObserver.AddingSessionStarted += OnAddingSessionStarted; sessionObserver.SessionAdded += OnSessionAdded; sessionObserver.AddingSessionFailed += OnAddingSessionFailed; var sessionOptions = new Sessionoptions(){ Type = "my-session-type" }.WithRelayNetwork(); await Multiplayer.Instance.CreateSessionAsync(sessionOptions); }}

Copyright © 2026 Unity Technologies
LegalPrivacy PolicyCookiesDocumentation Terms of UseDo Not Sell or Share My Personal InformationYour Privacy Choices (Cookie Settings)

"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S and elsewhere (more info here). Other names or brands are trademarks of their respective owners.

Some pages are machine-translated for convenience, and may contain inaccuracies. In the event of conflicting information, the English version is authoritative.


    Report a problem with this page