ゲームにサインインする

Vivox SDK を初期化した後は、そのゲームに割り当てられた Vivox インスタンスにユーザーをサインインさせることができます。

プレイヤーに使用される名前は、Unity AuthenticationId か、Unity Authentication が使用されていない場合は新しい GUID になります。

ノート: Account コンストラクターに渡すユーザー名の一部として発行者やドメインを加えないでください。これは Account コンストラクターが代わりに処理します。

初期化されたら、VivoxService.Instance.LoginAsync メソッドを呼び出して Vivox にサインインします。

  • VivoxService.Instance.LoginAsync のオプションの引数は LoginOptions 構造体で、ユーザーの表示名を設定する、テキスト音声変換を有効にする、またはブロックユーザーリストをロードすることができます。

LoginOptions で表示名が設定されると、この名前は参加するチャンネル内のすべてのユーザーに表示されます。ユーザーはこれを DisplayName (VivoxParticipant の結果内) として、VivoxService.Instance.ParticipantAddedToChannel または VivoxService.Instance.ParticipantRemovedFromChannel から受け取ります。

  • 表示名は現在のセッションでのみ有効で、Vivox ネットワークには保持されません。
  • 表示名の最大長は 127 バイトです。

ノート: Vivox SDK は、表示名のチェックを実行しません。表示名がゲームのルールに従っていること、フォントの文字がゲーム内のレンダラーでサポートされていること、表示名について重複、わいせつ性、偽装がチェックされていることを確認するのは、ゲーム開発者の責任です。表示名は、ゲームクライアントを使用するのではなく、帯域外の手段 (ゲームサーバーなど) で確認することをお勧めします。

以下のコードは、サインインプロセスを開始する方法、DisplayName を "Bob" に設定する方法、テキスト音声変換を有効にする方法の例です。

using UnityEngine;
using Unity.Services.Vivox;

class LogInExample : MonoBehaviour
{
    . . .
    async void LoginUserAsync()
    {
        // For this example, the VivoxService is initialized.
        var loginOptions = new LoginOptions()
        {
            DisplayName = "Bob",
            EnableTTS = true
        };
        VivoxService.Instance.LoginAsync(loginOptions)
    }
    . . .
}

LoginAsync が正常に呼び出されたときにイベントを受け取るために、VivoxService.Instance.LoggedInVivoxService.Instance.LoggedOut にサブスクライブできます。

以下のコードは、VivoxService.Instance.LoggedIn イベントと VivoxService.Instance.LoggedOut イベントにサブスクライブする方法と、LoginState の値が異なる関数を処理する方法の例です。

using UnityEngine;
using Unity.Services.Vivox;

class LoginPropChangeExample : MonoBehaviour
{
    . . .
    VivoxService.Instance.LoggedIn += onLoggedIn;
    VivoxService.Instance.LoggedOut += onLoggedOut;
    . . .

    private void onLoggedIn()
    {
        // Operations as needed
    }

    private void onLoggedOut()
    {
        // Operations as needed
    }
}

ノート: ユーザーがサインインしている状態でアプリケーションを起動することをお勧めします。ユーザーがアプリケーション内で別のアカウントにサインインできるシナリオでは、ユーザーがサインインしている状態でゲームサーバーに接続することをお勧めします。