Interface ISession
An interface that can be used by a client to access the information of a session.
Namespace: Unity.Services.Multiplayer
Assembly: Unity.Services.Multiplayer.dll
Syntax
public interface ISession
Properties
AvailableSlots
Available slots in the session
Declaration
int AvailableSlots { get; }
Property Value
Type | Description |
---|---|
int |
Code
The join code of the session.
Declaration
string Code { get; }
Property Value
Type | Description |
---|---|
string |
Remarks
Prefer this to ID when player-visible strings are needed. Unlike IDs, join codes are much shorter to type and avoid visually ambiguous characters.
CurrentPlayer
The current player in the session.
Declaration
IPlayer CurrentPlayer { get; }
Property Value
Type | Description |
---|---|
IPlayer |
HasPassword
True if the session has a password, false otherwise
Declaration
bool HasPassword { get; }
Property Value
Type | Description |
---|---|
bool |
Host
PlayerID of the session host.
Declaration
string Host { get; }
Property Value
Type | Description |
---|---|
string |
Id
The ID of the session.
Declaration
string Id { get; }
Property Value
Type | Description |
---|---|
string |
Remarks
Unique within a project and environment. Sessions can be joined by Id.
See Also
IsHost
Whether the current player is the host of the session.
Declaration
bool IsHost { get; }
Property Value
Type | Description |
---|---|
bool |
IsLocked
Whether the session is locked.
Declaration
bool IsLocked { get; }
Property Value
Type | Description |
---|---|
bool |
Remarks
Locked sessions cannot be joined by anyone.
See Also
IsPrivate
Whether the session is private.
Declaration
bool IsPrivate { get; }
Property Value
Type | Description |
---|---|
bool |
Remarks
Private sessions or not visible in queries and cannot be joined with quick-join. They can still be joined by ID or by Code.
See Also
MaxPlayers
The total number of players allowed in the session, including the host.
Declaration
int MaxPlayers { get; }
Property Value
Type | Description |
---|---|
int |
See Also
Name
The Name of the session.
Declaration
string Name { get; }
Property Value
Type | Description |
---|---|
string |
Remarks
Does not have to be unique. Sessions can be filtered by name in a query.
See Also
PlayerCount
The player count of the session
Declaration
int PlayerCount { get; }
Property Value
Type | Description |
---|---|
int |
Players
The list of players in the session
Declaration
IReadOnlyList<IReadOnlyPlayer> Players { get; }
Property Value
Type | Description |
---|---|
IRead |
Properties
The properties of the session.
Declaration
IReadOnlyDictionary<string, SessionProperty> Properties { get; }
Property Value
Type | Description |
---|---|
IRead |
State
The current state of the session.
Declaration
SessionState State { get; }
Property Value
Type | Description |
---|---|
Session |
Type
The type is a client-side key used to uniquely identify a session.
Declaration
string Type { get; }
Property Value
Type | Description |
---|---|
string |
Methods
AsHost()
Returns a read-write handle to the session with host privileges.
Declaration
IHostSession AsHost()
Returns
Type | Description |
---|---|
IHost |
A session with higher privileges. |
Exceptions
Type | Condition |
---|---|
Session |
Throws a Forbidden error when the caller is not the host. |
LeaveAsync()
Leaves the session.
Declaration
Task LeaveAsync()
Returns
Type | Description |
---|---|
Task | A task for the operation. |
Remarks
This method will be called automatically when the application is quitting.
Exceptions
Type | Condition |
---|---|
Session |
Thrown when called by a non-session-member. The Error property will be
set to Invalid |
ReconnectAsync()
Reconnects to the session.
Declaration
Task ReconnectAsync()
Returns
Type | Description |
---|---|
Task | A task for the operation. |
Remarks
Reconnecting is necessary when a player has momentarily disconnected from the network but didn't gracefully leave the session.
Exceptions
Type | Condition |
---|---|
Session |
Throws a SessionDeleted error when the session is already deleted. |
RefreshAsync()
Refreshes the session data.
Declaration
Task RefreshAsync()
Returns
Type | Description |
---|---|
Task | A task for the operation. |
Exceptions
Type | Condition |
---|---|
Session |
Throws a SessionDeleted error when the session is already deleted. |
SaveCurrentPlayerDataAsync()
Save changes to the current player.
Declaration
Task SaveCurrentPlayerDataAsync()
Returns
Events
Changed
Event that is invoked when the session changes.
Declaration
event Action Changed
Event Type
Type | Description |
---|---|
Action |
Remarks
This includes any type of changes to the session (properties, players, etc.).
Deleted
Event that is invoked when the session is deleted.
Declaration
event Action Deleted
Event Type
Type | Description |
---|---|
Action |
PlayerHasLeft
Event that is invoked when a player has left the session.
Declaration
event Action<string> PlayerHasLeft
Event Type
Remarks
The string parameter represents the ID of the player who has left. This event is called right after the session gets updated.
PlayerJoined
Event that is invoked when a player has joined the session.
Declaration
event Action<string> PlayerJoined
Event Type
Remarks
The string parameter represents the ID of the player who has joined. This event is called right after the session gets updated.
PlayerLeaving
Event that is invoked when a player is leaving the session.
Declaration
event Action<string> PlayerLeaving
Event Type
Remarks
The string parameter represents the ID of the player who is leaving. This event is called right before the session gets updated.
PlayerLeft
Event that is invoked when a player is leaving the session.
Declaration
[Obsolete("PlayerLeft has been deprecated. Use PlayerLeaving instead (UnityUpgradable) -> PlayerLeaving")]
event Action<string> PlayerLeft
Event Type
Remarks
The string parameter represents the ID of the player who is leaving. This event is called right before the session gets updated.
PlayerPropertiesChanged
Event that is invoked when player properties are changed.
Declaration
event Action PlayerPropertiesChanged
Event Type
Type | Description |
---|---|
Action |
Remarks
If the properties are already up to date locally, this event will not trigger. Example: This will not trigger for the host after it updates the properties, as the changes are already reflected in the host's local session.
RemovedFromSession
Event that is invoked when the current player is removed from the session.
Declaration
event Action RemovedFromSession
Event Type
Type | Description |
---|---|
Action |
SessionPropertiesChanged
Event that is invoked when session properties are changed.
Declaration
event Action SessionPropertiesChanged
Event Type
Type | Description |
---|---|
Action |
Remarks
If the properties are already up to date locally, this event will not trigger. Example: This will not trigger for the host after it updates the properties, as the changes are already reflected in the host's local session.
StateChanged
Event that is invoked when the session state changes.
Declaration
event Action<SessionState> StateChanged
Event Type
Type | Description |
---|---|
Action<Session |
Remarks
The Session