Play Games サービス v2 に移行する(Unity)

このドキュメントでは、既存のゲームを games v1 SDK から games v2 SDK に移行する方法について説明します。Unity 向け Google Play Games プラグインのバージョン 10 以前では、Games v1 SDK が使用されています。

始める前に

  • Google Play Console の設定と Unity Hub のインストールが完了していることを確認します。

Unity 用 Google Play Games プラグインをダウンロードする

Play ゲーム サービスの最新機能を活用するには、最新バージョンのプラグインをダウンロードしてインストールします。gitHub リポジトリからダウンロードします。

古いプラグインを削除する

Unity Hub で、次のフォルダまたはファイルを削除します。

Assets/GooglePlayGames

Assets/GeneratedLocalRepo/GooglePlayGames

Assets/Plugins/Android/GooglePlayGamesManifest.androidlib

Assets/Plugins/Android
Unity プロジェクトでハイライト表示されたフォルダを削除します。
Unity プロジェクトでハイライト表示されたフォルダを削除します(クリックして拡大)。

新しいプラグインを Unity プロジェクトにインポートする

Unity プロジェクトにプラグインをインポートする手順は次のとおりです。

  1. ゲーム プロジェクトを開きます。
  2. Unity Hub で、[Assets] > [Import Package] > [Custom Package] をクリックして、ダウンロードした unitypackage ファイルをプロジェクトのアセットにインポートします。
  3. 現在のビルド プラットフォームが Android に設定されていることを確認します。

    1. メインメニューで、[File] > [Build Settings] をクリックします。

    2. [Android] を選択し、[Switch Platform] をクリックします。

    3. [Window] > [Google Play Games] に新しいメニュー項目が表示されます。表示されない場合は、[Assets] > [Refresh] をクリックしてアセットを更新し、もう一度ビルド プラットフォームを設定してみてください。

  4. Unity Hub で、[File] > [Build Settings] > [Player Settings] > [Other Settings] をクリックします。

  5. [Target API level] ボックスで、バージョンを選択します。

  6. [Scripting backend] ボックスに「IL2CPP」と入力します。

  7. [ターゲット アーキテクチャ] ボックスで、値を選択します。

  8. パッケージ名 package_name をメモします。この情報は後で使用できます。

    Unity プロジェクトのプレーヤー設定
    Unity プロジェクトのプレーヤー設定。
  9. Google Play Console から Android リソースをコピーする

  10. Unity プロジェクトに Android リソースを追加する

自動ログイン コードを更新する

PlayGamesClientConfiguration 初期化クラスを PlayGamesPlatform.Instance.Authenticate() クラスに置き換えます。PlayGamesPlatform の初期化と有効化は不要です。PlayGamesPlatform.Instance.Authenticate() を呼び出すと、自動ログインの結果が取得されます。

C#

Unity Hub で、PlayGamesClientConfiguration クラスを含むファイルを探します。

using GooglePlayGames;
using GooglePlayGames.BasicApi;
using UnityEngine.SocialPlatforms;

public void Start() {
    PlayGamesClientConfiguration config =
        new PlayGamesClientConfiguration.Builder()
    // Enables saving game progress
    .EnableSavedGames()
    // Requests the email address of the player be available
    // will bring up a prompt for consent
    .RequestEmail()
    // Requests a server auth code be generated so it can be passed to an
    // associated backend server application and exchanged for an OAuth token
    .RequestServerAuthCode(false)
    // Requests an ID token be generated. This OAuth token can be used to
    // identify the player to other services such as Firebase.
    .RequestIdToken()
    .Build();

    PlayGamesPlatform.InitializeInstance(config);
    // recommended for debugging:
    PlayGamesPlatform.DebugLogEnabled = true;
    // Activate the Google Play Games platform
    PlayGamesPlatform.Activate();
}

それを次のように更新します。

using GooglePlayGames;

public void Start() {
    PlayGamesPlatform.Instance.Authenticate(ProcessAuthentication);
}

internal void ProcessAuthentication(SignInStatus status) {
    if (status == SignInStatus.Success) {
        // Continue with Play Games Services
    } else {
        // Disable your integration with Play Games Services or show a login
        // button to ask users to sign-in. Clicking it should call
        // PlayGamesPlatform.Instance.ManuallyAuthenticate(ProcessAuthentication).
    }
}

ソーシャル プラットフォームを選択する

ソーシャル プラットフォームを選択するには、ソーシャル プラットフォームを選択するをご覧ください。

サーバー認証コードを取得する

サーバー側のアクセスコードを取得するには、サーバー認証コードを取得するをご覧ください。

ログアウト コードを削除する

ログアウトのコードを削除します。Play ゲームサービスでは、ゲーム内のログアウト ボタンが不要になりました。

次の例に示すコードを削除します。

C#

// sign out
PlayGamesPlatform.Instance.SignOut();

ゲームをテストする

ゲームをテストして、設計どおりに機能することを確認します。実施するテストは、ゲームの機能によって異なります。

実行する一般的なテストのリストを次に示します。

  1. ログインに成功しました

    1. 自動ログインが機能している。ゲームの起動時に、ユーザーが Play ゲームサービスにログインしている必要があります。

    2. ウェルカム ポップアップが表示されます。

      ウェルカム ポップアップの例。
      ウェルカム ポップアップの例(クリックして拡大)。

    3. 成功したログメッセージが表示されます。ターミナルで次のコマンドを実行します。

      adb logcat | grep com.google.android.

      成功したログメッセージの例を次に示します。

      [$PlaylogGamesSignInAction$SignInPerformerSource@e1cdecc
      number=1 name=GAMES_SERVICE_BROKER>], returning true for shouldShowWelcomePopup.
      [CONTEXT service_id=1 ]
  2. UI コンポーネントの一貫性を確保する

    1. ポップアップ、リーダーボード、実績が、Play ゲームサービス ユーザー インターフェース(UI)のさまざまな画面サイズと向きで正しく一貫して表示される。

    2. Play Games Services の UI にログアウト オプションが表示されない。

    3. プレーヤー ID を正常に取得できること、およびサーバーサイドの機能が想定どおりに動作することを確認します。

    4. ゲームでサーバーサイド認証を使用している場合は、requestServerSideAccess フローを徹底的にテストします。サーバーが認証コードを受け取り、アクセス トークンと交換できることを確認します。ネットワーク エラー、無効な client ID シナリオの成功と失敗の両方のシナリオをテストします。

ゲームで次の機能を使用していた場合は、移行前と同じように動作することを確認するためにテストします。

  • リーダーボード: スコアを送信してリーダーボードを表示します。プレーヤーの名前とスコアのランキングと表示が正しいことを確認します。
  • 実績: 実績をロック解除し、実績が正しく記録され、Google Play ゲーム UI に表示されることを確認します。
  • 保存済みゲーム: ゲームで保存済みゲームを使用している場合は、ゲームの進行状況の保存と読み込みが問題なく動作することを確認します。これは、複数のデバイスでテストする場合や、アプリの更新後にテストする場合に特に重要です。

移行後のタスク

games v2 SDK に移行したら、次の手順を行います。

  1. Play アプリ署名を使用する

  2. AAB ファイルを作成する

  3. 内部テスト版リリースを作成する

  4. アプリ署名認証情報を確認する