読者です 読者をやめる 読者になる 読者になる

ベンガル花火

Android / iOS / Unity

【Unity】Google Play Games plugin for Unityの導入と利用

Unity

Google Play ゲームの仕様変更

2016年1月23日にGoogle Play ゲームのログイン方法が変更されました。

 「Google Play ゲーム」改善へ(ゲームごとのサインインが不要に) - ITmedia Mobile 「Google Play ゲーム」改善へ(ゲームごとのサインインが不要に) - ITmedia Mobile

それに伴ってのことか,Unity上でGoogle Play ゲームと連携を行うGoogle Play Games plugin for Unityの利用方法も変更されています。

ここでは2016年2月末現在でのUnityのAndroidプロジェクトに対するGoogle Play Games plugin for Unityの導入について確認していきます。

Google Play Games plugin for Unityのダウンロードとインポート

まず,Google Play Games plugin for Unityからアセットをダウンロードします。

f:id:tenmihi:20160228125827p:plain

zipファイルを解凍し,current-buildフォルダに存在するGooglePlayGamesPlugin-x.y.z.unitypackageからUnityのプロジェクトにアセットをインポートします。

f:id:tenmihi:20160228125901p:plain

これでUnityプロジェクトへのGoogle Play Games plugin for Unityの導入ができました。

Google Play ゲーム サービスでアプリをリンクさせる

Google Play Developer Consoleへ行き,ゲームサービスから新しいゲームの追加を選択します。

f:id:tenmihi:20160228125916p:plain

ゲーム名及びゲームのジャンルを選択して,次へを選択します。ゲーム名もジャンルも後で変更可能なので,適当に入力しても大丈夫です。

f:id:tenmihi:20160228125940p:plain

次に,リンク済みアプリからアプリケーションとサービスをリンクさせます。左の「リンク済みアプリ」を選択し,Androidアプリを選びます。

f:id:tenmihi:20160228130027p:plain

次にパッケージ名を入力します。これは,UnityのPlayer Settingsで設定できるBundle Identifierと同じである必要があります。

f:id:tenmihi:20160228130039p:plain

保存して次へ進み,「今すぐアプリを認証」を選択してアプリを認証します。 署名証明書のフィンガープリントが必要になるので,ターミナルから以下のコマンドでデバッグ用キーのSHA1のフィンガープリントを取ってきます。

f:id:tenmihi:20160228130117p:plain

keytool -v -list -keystore ~/.android/debug.keystore

パスワードは何も入力せずにエンターを押せば大丈夫です。 ターミナルに表示されたフィンガープリントを貼り付け,クライアントとリンクさせれば完了です。

f:id:tenmihi:20160228130127p:plain

実績とリーダーボードの追加

実績とリーダーボードを追加していきます。 左の実績を選んで,実績の追加から適当に実績を作って追加します。サムネイルもテスト時であれば必要はないのでぱぱっと作りましょう。

f:id:tenmihi:20160228130137p:plain

リーダーボードも同様の手順で作れますので,作りましょう。

f:id:tenmihi:20160228130146p:plain

作り終わった後,リーダーボード(あるいは実績)の管理画面下に表示されている「リソースを取得」を選択します。

f:id:tenmihi:20160228130155p:plain

xmlで記述されたリソースが表示されるのでクリップボードにコピーしてください。

f:id:tenmihi:20160228130212p:plain

これで実績とリーダーボードの設定は完了です。

Unity プロジェクトからログイン

Unityプロジェクトでの設定を行っていきます。まず初めに,ビルド対象とするプラットフォームがAndroidとなっていることを確認してください。なっていない場合は,Androidにプラットフォームを変更してください。

次に,Google Play Games pluginの設定を行います。Unityのメニューの「Window」→「Google Play Games」→「Setup」から「Android Setup」を選択します。すると,以下の様なセットアップダイアログが表示されると思います。

f:id:tenmihi:20160228130324p:plain

クラス名は適当に設定してください。ちなみにGithubでの説明ではGPGSldsとなっているので,迷ったらGPGSldsでいいと思います。 次にリソースを設定します。先ほどクリップボードにコピーしておいたリソースを貼り付けてください。 後は,「Setup」を選択して,以下のようにセットアップが成功すれば完了です。

f:id:tenmihi:20160228130337p:plain

実際に,Google Play ゲーム サービスへログインできるかを確かめます。 適当なオブジェクトに以下のスクリプトをアタッチしてください。

using UnityEngine;
using System.Collections;
using GooglePlayGames;
using GooglePlayGames.BasicApi;
using UnityEngine.SocialPlatforms;


public class GPGSTest : MonoBehaviour {

    void Start () {

        PlayGamesClientConfiguration config = new PlayGamesClientConfiguration.Builder()
            .Build();

        PlayGamesPlatform.InitializeInstance(config);
        PlayGamesPlatform.DebugLogEnabled = true;
        PlayGamesPlatform.Activate();

        Social.localUser.Authenticate((bool success) => {
            Debug.Log("Success!");
        });
    }

    void Update () {
    
    }
}

オブジェクトの存在するシーンを読みこめば,Google Play ゲーム サービスへの接続が行われるはずです。

f:id:tenmihi:20160228130908p:plain:w256

当然のことですが,Editor上では動きませんので実機もしくはエミュレーターで動作確認してください。

実績・リーダーボードの表示や実績の解除などは次回ご説明します。