Documentation

Support

Multiplayer

Multiplayer

Session operations as a client

Manage your sessions with the operations available to you as a session client.
Read time 1 minuteLast updated 12 hours ago

As a session client, you have access to operations that let you interact with session and player properties. Note that some client operations differ from those available to the host.

Session property operations

A client can read properties from a session. Unlike a host, a client can't add, update, or delete session properties.

Read APIs

The following APIs allow a client to read session properties:
ISession.IReadOnlyDictionary<string, SessionProperty> Properties { get; }

Read a session property

The following code snippet demonstrates how to read the
colour
property:
if (clientSession.Properties.TryGetValue("colour", out var colour)){ Debug.Log($"The colour session property is {colour.Value}");}

Player property operations

A client can access any player properties set as visible to them. However, a client can only add, update, or remove the player properties they own.

Read APIs

The following APIs allow a client to read player properties:
IPlayer ISession.CurrentPlayer { get; }IReadOnlyList<IReadOnlyPlayer> ISession.Players { get; }

Read a player property

The following code snippet demonstrates how to read the
colour
player property:
if (clientSession.Players.First().Properties.TryGetValue("colour", out var colour)){ Debug.Log($"First player colour property is {colour.Value}");}

Write APIs

The following APIs allow a client to modify its player properties:
IPlayer ISession.CurrentPlayer { get; }Task ISession.SaveCurrentPlayerDataAsync();void IPlayer.SetProperty(string key, PlayerProperty property);void IPlayer.SetProperties(Dictionary<string, PlayerProperty> properties);

Add a player property

To add a property, decide upon the visibility of the property:
  • Public (visible to everyone)
  • Member (visible to members of the Session)
  • Private (visible to the player who owns the property and the host)
The following code snippet demonstrates how to add a
colour
property with the value
red
on a client:
var redColourProperty = new PlayerProperty("red");clientSession.CurrentPlayer.SetProperty("colour", redColourProperty);await clienSession.SaveCurrentPlayerDataAsync();

Update a player property

The following code snippet demonstrates how to set the
colour
property to
null
on a client:
var nullColourProperty = new PlayerProperty(null);clientSession.CurrentPlayer.SetProperty("colour", redColourProperty);await clienSession.SaveCurrentPlayerDataAsync();

Delete a player property

The following code snippet demonstrates how to delete the
colour
property on a client:
clientSession.CurrentPlayer.SetProperty("colour", null);await clienSession.SaveCurrentPlayerDataAsync();