ドキュメント

サポート

Multiplayer Services SDK

Multiplayer Services SDK

Session operations as a client

Manage your sessions with the operations available to you as a session client.
読み終わるまでの所要時間 1 分最終更新 3ヶ月前

The Multiplayer Services SDK uses sessions to manage groups of players. Sessions relies internally on different combinations of Unity Gaming Services such as Relay, Distributed Authority, Lobby, Matchmaker and Cloud Code, and thus contributes to the billing of those services.
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.
If you are the host and have an
ISession
(client session), you can call
ISession.AsHost()
to get an
IHostSession
(host session) from your
ISession
. After you have an
IHostSession
, you can add, update, or delete session property. Refer to Session operations as a host.

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; }
Use
ISession.CurrentPlayer
to read your own properties.

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();