NHN Cloud NHN Cloud Meetup!

Gamebaseハンズオン Vol.1

目次

1.概要
2.Gamebase SDKの設定
 2.1.Gamebase Setting Toolのインポート
 2.2.Gamebase SDKのインストール
3.Unityの設定
 3.1.サンプルパッケージのインポート
 3.2.ビルドの設定
4.初期化の実装
 4.1.設定値の確認
 4.2.初期化のコード追加
 4.3.初期化の実行
 4.4. Troubleshooting
5.ログインの実装
 5.1.ログインのコード追加
 5.2.ログインの実行
 5.3. Troubleshooting
6.ログアウトの実装
 6.1.ログアウトのコード追加
 6.2.ログアウトの実行
 6.3.Troubleshooting
7.まとめ

1.概要

Gamebase SDKの設定方法とゲストログイン・ログアウトの実装方法について説明します。

1.1.事前準備

2.Gamebase SDKの設定

2.1.Gamebase Setting Toolのインポート

Unity(Unity Hub)を起動し、プロジェクト>新規作成をクリック

テンプレートで3Dを選択し、プロジェクト名でGamebase HandsOnLabを入力し、作成をクリック

Window>Asset Storeをクリック

Gamebaseを入力して検索

ダウンロードをクリック

インポートをクリック

Importをクリック

Assets/TOAST/Gamebase Tools/Setting Toolが追加されていることを確認

2.2.Gamebase SDKのインストール

Tools>TOAST>Gamebase>Setting Tool>Settingsをクリック

Download SDKをクリック

Use Android Platformのみを選択して、Settingsをクリック

OKをクリック

Assets/Gamebase/Plugins/Android/GamebasePlugin.jarが追加されていることを確認

2.3.参考動画

3.Unityの設定

3.1.サンプルパッケージのインポート

Assets>Import Package>Custom Packageをクリックし、事前準備でダウンロードしたサンプルパッケージ(gamebase_unity_authentication_sample.unitypackage)を選択

Importをクリック

3.2.ビルドの設定

Assets>TOAST>Codelab>Gamebase>Scene>AuthenticationSample.sceneをダブルクリック

File>Build Settingsをクリック

Androidを選択し、Switch Platformをクリック

Add Open Scenesをクリックし、TOAST/Codelab/Gamebase/Scene/AuthenticationSampleを選択し、Buildをクリック

ファイル名をgamebase-handsonlabにし、保存をクリック

Build completed with a result of 'Succeeded'が表示されたことを確認

4.初期化の実装

4.1.設定値の確認

※ハンズオンセミナーに参加する人は決済方法の登録、組織とプロジェクトの作成、サービスの有効化は不要です
TOASTのConsoleにログインし、決済方法を登録してから組織プロジェクトを作成

サービス選択からGamebaseを選択し、サービス有効の画面で確認をクリック

Gamebase>アプリ>アプリIDをコピー
※手順4.2で使用

Gamebase>アプリ>クライアントAndroid登録をクリック

ストアをGoogle Play、クライアントバージョンを1.0.0、サービス状態をテスト、デバッグログをSDK設定にして、保存をクリック

クライアントリストに1.0.0が追加されていることを確認

4.2.初期化のコード追加

Assets/TOAST/Codelab/Gamebase/Scripts/Authentication/Sample.csをダブルクリック

OnInitialize()関数に、以下のコードを入力して保存
{AppID}は手順4.1でコピーした値、{AppVersion}1.0.0に変更

public void OnInitialize()
{
    var configuration = new GamebaseRequest.GamebaseConfiguration();
    configuration.appID = "{AppID}";
    configuration.appVersion = "{AppVersion}";
    configuration.storeCode = "GG";
    configuration.displayLanguageCode = Gamebase.GetDisplayLanguageCode();

    Gamebase.Initialize(configuration, (launchingInfo, error) =>
    {
        if (Gamebase.IsSuccess(error) == true)
        {
            statusText.text = "Gamebase initialization is succeeded.";

            var status = launchingInfo.launching.status;

            if (status.code == GamebaseLaunchingStatus.IN_SERVICE)
            {
                statusText.text = "Playable";
            }
            else
            {
                switch (status.code)
                {
                    case GamebaseLaunchingStatus.RECOMMEND_UPDATE:
                        {
                            statusText.text = string.Format("Playable message : {0}", launchingInfo.launching.status.message);
                            break;
                        }

                    case GamebaseLaunchingStatus.IN_SERVICE_BY_QA_WHITE_LIST:
                        {
                            statusText.text = string.Format("Playable message : {0}", launchingInfo.launching.status.message);
                            break;
                        }

                    case GamebaseLaunchingStatus.IN_TEST:
                        {
                            statusText.text = string.Format("Playable message : {0}", launchingInfo.launching.status.message);
                            break;
                        }

                    case GamebaseLaunchingStatus.IN_REVIEW:
                        {
                            statusText.text = string.Format("Playable message : {0}", launchingInfo.launching.status.message);
                            break;
                        }

                    default:
                        {
                            statusText.text += string.Format("Unable message : {0}", launchingInfo.launching.status.message);
                            break;
                        }
                }
            }
        }
        else
        {
            statusText.text = string.Format("Gamebase initialization is failed. Error is {0}", error.ToString());
        }
    });
}

4.3.初期化の実行

Gameを選択し、Maximize On Playを選択して、をクリック

Initializeをクリックし、Playable message : This service is currently being tested.が表示されることを確認

4.4. Troubleshooting

初期化中にエラーが発生した場合、次の記事を参照してください。

5.ログインの実装

5.1.ログインのコード追加

Assets/TOAST/Codelab/Gamebase/Scripts/Authentication/Sample.csをダブルクリックし、OnLogin()関数には、以下のコードを入力して保存

public void OnLogin()
{
    Gamebase.Login(GamebaseAuthProvider.GUEST, (authToken, error) =>
    {
        if (Gamebase.IsSuccess(error) == true)
        {
            statusText.text = string.Format("Guest login succeeded. User id is {0}", authToken.member.userId);
        }
        else
        {
            statusText.text = string.Format("Guest login failed. Error is {0}", error.ToString());
        }
    });
}

 

5.2.ログインの実行

をクリックし、Loginをクリックし、Guest login succeeded. User id is XXXXXXXXが表示されることを確認
※ユーザーIDは会員検索時に使用

TOASTのConsoleにログインし、Gamebase>Analytics>モニタリング同時接続者(CCU)1になっていることを確認
Gamebase>ユーザー>会員ユーザーIDを入力し、検索をクリックすると、ユーザーIdP情報が表示されることを確認

5.3. Troubleshooting

ログイン中にエラーが発生した場合、次の記事を参照してください。

6.ログアウトの実装

6.1.ログアウトのコード追加

Assets/TOAST/Codelab/Gamebase/Scripts/Authentication/Sample.csをダブルクリックし、OnLogout()関数には、以下のコードを入力して保存

public void OnLogout()
{
    Gamebase.Logout((error) =>
    {
        if (Gamebase.IsSuccess(error) == true)
        {
            statusText.text = "Logout succeeded.";
        }
        else
        {
            statusText.text = string.Format("Logout failed. Error is {0}", error.ToString());
        }
    });
}

6.2.ログアウトの実行 

をクリックし、Logoutをクリックし、Logout succeeded.が表示されることを確認

TOASTのConsoleにログインし、Gamebase>Analytics>モニタリング同時接続者(CCU)0になっていることを確認

6.3.Troubleshooting 

ログアウト中にエラーが発生した場合、次の記事を参照してください。

7.まとめ

7.1.学習した内容

  • Gamebase Setting ToolからGamebase SDKをインストールする方法
  • TOAST ConsoleでGamebaseを有効化する方法
  • 初期化の実装方法
  • ゲストログインの実装方法
  • GamebaseのAnalyticsの確認方法
  • Gamebaseのユーザーの検索方法
  • ゲストログアウトの実装方法

7.2.次のステップ

  • IdP認証の実装方法
pagetop