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 thecolourif (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 thecolourif (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)
colourredvar redColourProperty = new PlayerProperty("red");clientSession.CurrentPlayer.SetProperty("colour", redColourProperty);await clienSession.SaveCurrentPlayerDataAsync();
Update a player property
The following code snippet demonstrates how to set thecolournullvar nullColourProperty = new PlayerProperty(null);clientSession.CurrentPlayer.SetProperty("colour", redColourProperty);await clienSession.SaveCurrentPlayerDataAsync();
Delete a player property
The following code snippet demonstrates how to delete thecolourclientSession.CurrentPlayer.SetProperty("colour", null);await clienSession.SaveCurrentPlayerDataAsync();