ドキュメント

サポート

Multiplayer Services SDK

Multiplayer Services SDK

Synchronization of player names in a session

Expose and read player display names as session player properties so all players can view each other's names.
読み終わるまでの所要時間 1 分最終更新 1ヶ月前

When a player is authenticated through the Authentication service, you can write the player's name into the session as a player property, and update it during the session lifecycle. You can achieve this functionality using the following two extension methods:
  • WithPlayerName(VisibilityPropertyOptions visibility)
    to enable synchronization on session creation and join.
  • GetPlayerName()
    to read the name from any session player.

Enable player name sync in session options

Use
WithPlayerName
to synchronize the player's authenticated name into the session with a chosen visibility. The following example demonstrates how to enable player-name synchronization on session creation:
var myPlayerName = "CustomName";await UnityServices.InitializeAsync();await AuthenticationService.Instance.SignInAnonymouslyAsync();await AuthenticationService.Instance.UpdatePlayerNameAsync(myPlayerName);// Configure your session and enable name sync (member visibility makes it readable by other members)var sessionOptions = new SessionOptions{ MaxPlayers = 4, Type = "Session"}.WithPlayerName(VisibilityPropertyOptions.Member);
Use
VisibilityPropertyOptions.Member
or
VisibilityPropertyOptions.Public
so other players can read the name. Use
VisibilityPropertyOptions.Private
if you don't want names to be visible to others. In that case, other players’
GetPlayerName()
calls return
null
.

Read player names from the session

Use
GetPlayerName
to retrieve the synchronized name from any player’s properties.
// Read your own player name (from the local session player)string myName = session.CurrentPlayer.GetPlayerName();// Read other players’ namesforeach (var player in session.Players){ var name = player.GetPlayerName() ?? $"Player {player.Id}"; UnityEngine.Debug.Log($"Player {player.Id} name: {name}");}
If a name isn’t available for any reason,
GetPlayerName()
returns
null
. For example, a name might be unavailable because the player hasn’t set a name, or the property isn't visible.
The player must be signed in and have a player name available via the Authentication service. Synchronization occurs while the session is connected. Updates made while disconnected won’t propagate until reconnected.

Additional resources