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

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

始める前に

  • Google Play Console をセットアップし、Unity Hub をインストールしていることを確認します。

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

Play Games 開発者サービスの最新機能を利用するには、最新バージョンのプラグインをダウンロードしてインストールしてください。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 Games サービスでは、ゲーム内ログアウト ボタンが不要になりました。

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

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 Games サービスのユーザー インターフェース(UI)に正しく一貫して表示されます。

    2. Play Games 開発者サービスの UI にログアウト オプションが表示されない。

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

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

ゲームで次のいずれかの機能を使用していた場合は、移行前と同じように動作することを確認してください。

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

移行後のタスク

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

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

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

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

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