Gamebase Unity SDKを使用するためには、まず初期化を行う必要があります。また、アプリID、アプリバージョン情報がNHN Cloudコンソールに必ず登録されていなければなりません。
初期化する際に必要な設定は、次の通りです。
Setting value | Supported Platform | Mandatory(M) / Optional(O) |
---|---|---|
appID | ALL | M |
appVersion | ALL | M |
storeCode | ALL | M |
displayLanguageCode | ALL | O |
enablePopup | ALL | O |
enableLaunchingStatusPopup | ALL | O |
enableBanPopup | ALL | O |
useWebViewLogin | Standalone | O |
Gamebaseコンソールに登録されたプロジェクトIDです。
Game > Gamebase > コンソール使用ガイド > アプリ > App
Gamebaseコンソールに登録したクライアントバージョンです。
Game > Gamebase > コンソール使用ガイド > アプリ > Client
NHN Cloudの統合アプリ内決済サービスであるIAP(In-App Purchase)を初期化するために必要なストア情報です。
Store | Code | Description |
---|---|---|
App Store | AS | only iOS |
Google Play | GG | only Android |
ONE Store | ONESTORE | only Android |
GALAXY Store | GALAXY | only Android |
Huawei AppGallery | HUAWEI | only Android |
My Card | MYCARD | only Android |
Windows | WIN | only Unity Standalone |
macOS | MAC | Standaloneに限る |
Web | WEB | only Unity WebGL |
Gamebaseで提供するUI及びSystemDialogに表示される言語をデバイスに設定されている言語ではなく、ユーザーが設定した言語に変更することができます。
Game > Gamebase > Unity SDK使用ガイド > ETC > Additional Features > Display Language
システムメンテナンス、利用制限(ban)などゲームユーザーがゲームをプレイすることができない状況の場合、ポップアップなどで理由を表示しなければならないときがあります。 Gamebase SDKで提供する基本ポップアップを使用するかどうかに対する設定です。
LaunchingStatusがゲームをプレイすることができない状態の場合、Gamebaseで提供する基本ポップアップを使用するかどうかに対する設定です。 LaunchingStatusは、次のLaunchingチャプターの下のState、Code部分をご参考ください。
ログインする際に該当するゲームユーザーが利用停止状態の場合、Gamebaseで提供する基本ポップアップを使用するかどうかに対する設定です。
スタンドアローン(standalone)プラットフォームで、WebViewでログインするかどうかに対する設定です。
[注意]
ゲームをリリースする時は、必ずソースコードからSetDebugModeの呼び出しを削除するか、パラメータをfalseに変更してビルドしてください。
デバッグ設定はコンソールでも行えます。コンソールで設定された値を優先視します。 コンソール設定方法は、以下のガイドを参考にしてください。
API
Supported Platforms ■ UNITY_IOS ■ UNITY_ANDROID ■ UNITY_STANDALONE ■ UNITY_WEBGL ■ UNITY_EDITOR
static void SetDebugMode(bool isDebugMode)
Example
public void SetDebugModeSample(bool isDebugMode)
{
Gamebase.SetDebugMode(isDebugMode);
}
SDKを初期化します。
API
Supported Platforms ■ UNITY_IOS ■ UNITY_ANDROID ■ UNITY_STANDALONE ■ UNITY_WEBGL ■ UNITY_EDITOR
static void Initialize(GamebaseRequest.GamebaseConfiguration configuration, GamebaseCallback.GamebaseDelegate<GamebaseResponse.Launching.LaunchingInfo> callback)
Example
public class SampleInitialization
{
public void Initialize()
{
/**
* Show gamebase debug message.
* set 'false' when build RELEASE.
*/
Gamebase.SetDebugMode(true);
/**
* Gamebase Configuration.
*/
var configuration = new GamebaseRequest.GamebaseConfiguration();
configuration.appID = "appID";
configuration.appVersion = "appVersion;"
configuration.displayLanguageCode = GamebaseDisplayLanguageCode.English;
#if UNITY_ANDROID
configuration.storeCode = GamebaseStoreCode.GOOGLE;
#elif UNITY_IOS
configuration.storeCode = GamebaseStoreCode.APPSTORE;
#elif UNITY_WEBGL
configuration.storeCode = GamebaseStoreCode.WEBGL;
#elif UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX
configuration.storeCode = GamebaseStoreCode.MACOS;
#else
configuration.storeCode = GamebaseStoreCode.WINDOWS;
#endif
/**
* Gamebase Initialize.
*/
Gamebase.Initialize(configuration, (launchingInfo, error) =>
{
if (Gamebase.IsSuccess(error) == true)
{
Debug.Log("Initialization succeeded.");
//Following notices are registered in the Gamebase Console
var notice = launchingInfo.launching.notice;
if (notice != null)
{
if (string.IsNullOrEmpty(notice.message) == false)
{
Debug.Log(string.Format("title:{0}", notice.title));
Debug.Log(string.Format("message:{0}", notice.message));
Debug.Log(string.Format("url:{0}", notice.url));
}
}
//Status information of game app version set in the Gamebase Unity SDK initialization.
var status = launchingInfo.launching.status;
// Game status code (e.g. Under maintenance, Update is required, Service has been terminated)
// refer to GamebaseLaunchingStatus
if (status.code == GamebaseLaunchingStatus.IN_SERVICE)
{
// Service is now normally provided.
}
else
{
switch (status.code)
{
case GamebaseLaunchingStatus.RECOMMEND_UPDATE:
{
// Update is recommended.
break;
}
// ...
case GamebaseLaunchingStatus.INTERNAL_SERVER_ERROR:
{
// Error in internal server.
break;
}
}
}
}
else
{
// Check the error code and handle the error appropriately.
Debug.Log(string.Format("Initialization failed. error is {0}", error));
if (error.code == GamebaseErrorCode.LAUNCHING_UNREGISTERED_CLIENT)
{
GamebaseResponse.Launching.UpdateInfo updateInfo = GamebaseResponse.Launching.UpdateInfo.From(error);
if (updateInfo != null)
{
// Update is require.
}
}
}
});
}
}
InitializeAPIを使用してGamebase Unity SDKを初期化すると、LaunchingInfoの客体が結果値として送られます。 このLaunchingInfoの客体には、Gamebaseコンソールに設定した値やゲーム状態などが含まれています。
Gamebaseの起動情報です。
1.1 status
Gamebase Unity SDKの初期化の設定に入力したアプリバージョンのゲームステータス情報です。
ステータスコードは、次の表をご参考ください。
Status | Code | Description |
---|---|---|
IN_SERVICE | 200 | 正常サービス中 |
RECOMMEND_UPDATE | 201 | アップデート推奨 |
IN_SERVICE_BY_QA_WHITE_LIST | 202 | メンテナンス中はサービスを利用できませんが、QA端末として登録されている場合はメンテナンスに関係なくサービスに接続してテストできます。 |
IN_TEST | 203 | テスト中 |
IN_REVIEW | 204 | 審査中 |
IN_BETA | 205 | ベータサーバー環境 |
REQUIRE_UPDATE | 300 | アップデート必須 |
BLOCKED_USER | 301 | 「接続ブロック」に登録された端末(デバイスキー)からサービスに接続した場合です。 |
TERMINATED_SERVICE | 302 | サービス終了 |
INSPECTING_SERVICE | 303 | サービスメンテナンス中 |
INSPECTING_ALL_SERVICES | 304 | 全てのサービスメンテナンス中 |
INTERNAL_SERVER_ERROR | 500 | 内部サーバーエラー |
Game > Gamebase > コンソール使用ガイド > アプリ > App
1.2 app
Gamebaseコンソールに登録されたアプリ情報です。
Game > Gamebase > コンソール使用ガイド > アプリ > Client
1.3 maintenance
Gamebaseコンソールに登録されたメンテナンス情報です。
Game > Gamebase > コンソール使用ガイド > 運営 > Maintenance
enablePopupとenableLaunchingStatusPopupの値がいずれもtrueの場合、ゲームがメンテナンス状態の時、自動的にメンテナンスポップアップが表示されます。
ここで詳細表示ボタンをクリックするとメンテナンス情報が自動的にWebビューで表示されます。
この時に表示されるhtmlファイルを修正したい場合は、次のリンクのhtmlファイルをダウンロードして自由に修正した後、'Assets > StreamingAssets > Gamebase'フォルダに追加するとGamebase SDKに内蔵された基本htmlファイルの代わりにそのhtmlファイルを使用してメンテナンス情報を表示します。 htmlファイルダウンロードLINK
1.4 notice
Gamebaesコンソールに登録されたお知らせ情報です。
Game > Gamebase > コンソール使用ガイド > 運営 > Notice
1.5 user
Gamebase初期化を実行したユーザー情報です。
Gamebaseと連携しているNHN CloudサービスのappKeyです。
NHN Cloudコンソールに登録されたIAPストアの情報です。
Game > Gamebase > コンソール使用ガイド > 決済
NHN Cloud Launching Consoleでユーザーが入力した情報です。
Game > Gamebase > コンソール使用ガイド > 管理 > Config
GetLaunchingInformations APIを利用すると、Initialize後もLaunchingInfoオブジェクトを取得できます。
[注意]
GetLaunchingInformations APIは、リアルタイムでサーバーから情報を取得する非同期APIではありません。 2分毎にアップデートされるキャッシュ情報を返すめ、リアルタイムで現在のメンテナンス状況を判断する用途には適していません。 このような場合にはLaunching Status Codeが変更されれ時にイベントが動作するGamebaseEventHandlerを活用してください。 Game > Gamebase > Unity SDK使用ガイド > ETC > Additional Features > Gamebase Event Handler > Observer
API
Supported Platforms ■ UNITY_IOS ■ UNITY_ANDROID ■ UNITY_STANDALONE ■ UNITY_WEBGL ■ UNITY_EDITOR
static GamebaseResponse.Launching.LaunchingInfo GetLaunchingInformations()
Example
public GamebaseResponse.Launching.LaunchingInfo GetLaunchingInformations()
{
return Gamebase.Launching.GetLaunchingInformations();
}
Gamebaseコンソールに登録されていないGameClientVersionを初期化するとLAUNCHING_UNREGISTERED_CLIENT(2004)エラーが発生します。 enablePopup(true), enableLaunchingStatusPopup(true)状態の場合、強制アップデートポップアップが表示され、マーケットに移動します。 Gamebaseポップアップを使用しない場合はマーケットURLのようなアップデート情報をGamebaseErrorオブジェクトから取得できます。
VO
public class UpdateInfo {
// 最新バージョンをダウンロードできるストアインストールURL
string installUrl;
// ユーザーに表示されるメッセージで、ユーザーの端末言語に合わせて伝達されます。
// 言語が「ja」の場合、メッセージは下記のとおりです。
// 'サポートしないバージョンです。最新バージョンへアップデートしてください。'
string message;
}
API
Supported Platforms ■ UNITY_IOS ■ UNITY_ANDROID ■ UNITY_STANDALONE ■ UNITY_WEBGL ■ UNITY_EDITOR
GamebaseResponse.Launching.UpdateInfo GamebaseResponse.Launching.UpdateInfo.From(GamebaseError error);
Example
public class SampleInitialization
{
public void Initialize()
{
var configuration = new GamebaseRequest.GamebaseConfiguration();
configuration.appID = "appID";
configuration.appVersion = "appVersion;"
configuration.displayLanguageCode = GamebaseDisplayLanguageCode.English;
#if UNITY_ANDROID
configuration.storeCode = GamebaseStoreCode.GOOGLE;
#elif UNITY_IOS
configuration.storeCode = GamebaseStoreCode.APPSTORE;
#elif UNITY_WEBGL
configuration.storeCode = GamebaseStoreCode.WEBGL;
#elif UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX
configuration.storeCode = GamebaseStoreCode.MACOS;
#else
configuration.storeCode = GamebaseStoreCode.WINDOWS;
#endif
Gamebase.Initialize(configuration, (launchingInfo, error) =>
{
if (Gamebase.IsSuccess(error) == true)
{
// Gamebase initialization succeeded.
}
else
{
// Check the error code and handle the error appropriately.
Debug.Log(string.Format("Initialization failed. error is {0}", error));
if (error.code == GamebaseErrorCode.LAUNCHING_UNREGISTERED_CLIENT)
{
GamebaseResponse.Launching.UpdateInfo updateInfo = GamebaseResponse.Launching.UpdateInfo.From(error);
if (updateInfo != null)
{
// Unregistered game client version.
// Open market url to update application.
string installUrl = updateInfo.installUrl; // Market URL.
string message updateInfo.message; // Message from launching server.
}
}
}
});
}
}
Error | Error Code | Description |
---|---|---|
NOT_INITIALIZED | 1 | Gamebaseが初期化されていません。 |
NOT_LOGGED_IN | 2 | ログインする必要があります。 |
INVALID_PARAMETER | 3 | 無効なパラメータです。 |
INVALID_JSON_FORMAT | 4 | JSONフォーマットエラーです。 |
USER_PERMISSION | 5 | 権限がありません。 |
NOT_SUPPORTED | 10 | サポートしていない機能です。 |