Classic/VPC環境で利用できます。
Unityにて、GAMEPOT Unity SDKを活用してゲームとダッシュボードを連携する方法を説明します。SDKのインストールから環境構築を行うと、ゲーム開発に必要な機能を統合できます。
システム要件
Unity用 GAMEPOT SDKを使用するためのシステム要件は、次の通りです。
- 最小スペック: 2022.3.44f1以降
- 以前のバージョンの Unityへの対応が必要な場合は、お問い合わせチャネルにてご確認ください。
SDKのインストールと環境の構成
GAMEPOT Unity SDKをインストールしてから環境を構成し、GAMEPOTのダッシュボードとゲームを連携してゲーム開発に必要な機能を使用できます。
GAMEPOT SDKでサポートしている言語は次の通りです。
- 韓国語、英語、イタリア語、タイ語、ベトナム語、日本語、中国語(簡体字/繁体字)、インドネシア語、ドイツ語、スペイン語、フランス語
アプリ実行時にデバイスの言語によって SDKがサポートする言語で自動的に表記され、サポートしていない言語は英語で表記されます。
SDKのインストール
GAMEPOT Unity SDKをインストールし、Unityでプロジェクトを設定する方法は、次の通りです。
- Unity公式公開 GitHub から最新バージョンをダウンロードします。
- Unityで Assets > Import Package > Custom Package... メニューを順にクリックし、nbase-unity-plugin-[version].unitypackage ファイルを読み込みます。
- GAMEPOT 3.0からは Mavenと CocoaPodsを通じてデプロイされ、デバイス別に簡単な設定で外部ライブラリと統合できます。
iOSビルドが正常に動作するには、CocoaPodsがインストールされている必要があります。
External Dependency Manager for Unityを含めてインストールされ、簡単に Android、iOSパッケージをインストールできます。
Android Gradleの設定
Androidビルドに必要な Gradleの設定手順を、順に実行してください。
- Player Settingsの Publishing Settingsにて、Custom Main Gradle Templateと Custom Gradle Properties Templateを選択します。

- Minimum API Levelを24にアップグレードします。

- Assets > External Dependency Manager > Android Resolver > Settingsメニューを順にクリックし、Enable Auto-Resolutionと Explode AARs項目からチェックを外します。

- 下図のように、Dependencyの設定ファイルをエディタで開き、構成を確認します。

次は NBase SDK使用に基本的に必要な依存パッケージを定義したファイルです。追加機能を使用するには、以下のファイルに項目を追加すると Androidと iOSにてモジュールを使用できます。
Dependency modulesとは
外部 SDKを使用するためのモジュールです。Googleログインの場合、io.nbase:nbase-adapter-provider-googleのようにアダプターとして提供されるモジュールを一緒にインストールする必要があります。
XML例:
<?xml version="1.0" encoding="UTF-8"?>
<dependencies>
<androidPackages>
<androidPackage spec="io.nbase:nbasesdk:3.0.94"/>
</androidPackages>
<iosPods>
<iosPod name="NBase" version="3.0.64" minTargetSdk="15.1" />
</iosPods>
</dependencies>
- Googleログインと Google Play Store決済を使用する場合
XML例:
<dependencies>
<androidPackages>
<androidPackage spec="io.nbase:nbasesdk:3.0.94"/>
<androidPackage spec="io.nbase:nbase-adapter-provider-google:3.0.12"/>
<androidPackage spec="io.nbase:nbase-adapter-billing-googleplay:3.0.9" />
</androidPackages>
<iosPods>
<iosPod name="NBase" version="3.0.64" minTargetSdk="15.1" />
<iosPod name="NBaseAdapterProviderGoogle" version="3.0.57" minTargetSdk="15.1" />
</iosPods>
</dependencies>
サポート可能な依存モジュールは次の通りです。
| Name | Description | Dependency modules |
|---|---|---|
| io.nbase:nbasesdk | GAMEPOT基本モジュール | X |
| io.nbase:nbase-adapter-provider-google | Googleログイン | X |
| io.nbase:nbase-adapter-provider-apple | Appleログイン | X |
| io.nbase:nbase-adapter-provider-facebook | Facebookログイン | com.facebook.android:facebook-login:latest.release |
| io.nbase:nbase-adapter-provider-kakao | Kakaoログイン | X |
| io.nbase:nbase-adapter-provider-line | LINEログイン | X |
| io.nbase:nbase-adapter-provider-naver | NAVERログイン | X |
| io.nbase:nbase-adapter-provider-huawei | Huaweiログイン | X |
| io.nbase:nbase-adapter-provider-playgame | Google Play Gamesログイン | X |
| io.nbase:nbase-adapter-provider-x | Xログイン | X |
| io.nbase:nbase-adapter-billing-googleplay | Google Play Store | com.android.billingclient:billing-ktx:7.1.1 |
| io.nbase:nbase-adapter-billing-onestore | ONE Store | X |
| io.nbase:nbase-adapter-billing-galaxy | Galaxy Store | X |
| io.nbase:nbase-adapter-billing-huawei | Huawei Store | X |
メール、ゲストログインの場合は基本モジュールに適用されています。
すべての依存関係を設定した後、Unityエディタにて Assets > External Dependency Manager > Android Resolver > Force Resolveをクリックします。
Dependencies.xmlを構成した後に Force Resolveを実行すると mainTemplate.gradleファイルで定義した内容が implementationとして自動適用されます。この設定が完了しない場合、ビルド時に必要な関連ライブラリーはダウンロードできません。
iOSの設定
/Assets/NBaseSDK/Editor/NBaseSDKDependencies.xmlファイルを開きます。
「iosPods」と「/iosPods」の間に必要なフレームワークを追加します。基本的に必要なフレームワークは追加されています。
XML例:
<?xml version="1.0" encoding="UTF-8"?>
<dependencies>
<androidPackages>
...
</androidPackages>
<iosPods>
<iosPod name="NBase" version="3.0.64" minTargetSdk="15.1" />
</iosPods>
</dependencies>
Firebaseのように必要なフレームワークをインストールしたい場合にも、以下のように別途追加します。
XML例:
<iosPods>
...
<iosPod name="FirebaseMessaging" version="10.20.0" minTargetSdk="9.0" />
<iosPod name="Firebase/Analytics" version="10.15.0" minTargetSdk="9.0" />
...
</iosPods>
CocoaPodsがインストールされていない場合は、
Unityエディタにて、Assets > External Dependency Manager > iOS Resolver > Install Cocoapodsをクリックします。
Unityプロジェクトを iOS用にビルドすると Unity-iPhone.xcworkspace ファイルが作成されます。このファイルを開いてください。
Unity-iPhone.xcodeproj の代わりに Unity-iPhone.xcworkspace ファイルを開かないと CocoaPodsの依存関係は使用されません。
Unity 2021からは自動的にそのプロジェクトが選択されます。
| Name | Description | Dependeny modules |
|---|---|---|
| NBase | GAMEPOT基本モジュール | X |
| NBaseAdapterProviderGoogle | Googleログイン | X |
| NBaseAdapterProviderFacebook | Facebookログイン | FBSDKLoginKit (17.4.0) |
| NBaseAdapterProviderNaver | NAVERログイン | X |
| NBaseAdapterProviderLine | LINEログイン | X |
| NBaseAdapterProviderKakao | Kakaoログイン | X |
| NBaseAdapterProviderX | Xログイン | X |
一部の依存フレームワークは Swift Package Managerを通じてのみ追加できます。
以下は、Swift Package Managerで追加が必要な、必須の依存フレームワークを手動で追加する方法です。
-
Xcodeでプロジェクト設定に移動し、Package Dependencies設定に進みます。

-
右上の URL入力欄に
https://github.com/apollographql/apollo-ios.gitを追加して検索し、apollo-iosを選択した後、Add Packageで追加します。 -
表示されるモーダル内の Apolloと ApolloAPIモジュールをプロジェクトのメインターゲット(Unity-iPhone)に追加します。

以下の表は、Swift Package Managerで追加する依存モジュールを説明します。
Name Dependency modules Location Version Framework NBase Apollo https://github.com/apollographql/apollo-ios.git 1.15.2
事前準備
GAMEPOT Unity SDKを適用する前に必要な必須設定項目を次の通りご確認ください。
- プロジェクト IDとプロジェクトキーはダッシュボード > プロジェクトの設定からコピーします。
- ログイン、ストア、連携の環境設定はダッシュボード > プロジェクトの設定にて追加したり変更したりします。
- ログイン別にログイン手段別環境設定を参照し、コンソールに設定してダッシュボードに追加します。
- In-App決済の前に、ストア別環境設定を参照し、コンソールに設定してダッシュボードに追加します。
- In-App決済の前に、決済ストアごとにダッシュボード > 決済 > In-App にてアイテムを登録します。
初期化
初期化を実行するには、ゲームを始める際にロードされる最初の画面に使用されるインスタンスに、以下のコードを追加します。
C# 例:
using UnityEngine;
using NBaseSDK;
public class GamePotExample : MonoBehaviour
{
void Start()
{
NBaseSDK.NBase.initialize(projectId, projectKey, [storeId], [language], [region], (init, error) => {
if (error != null)
{
Debug.Log(error.Message);
return;
}
Debug.Log(init.ToString());
});
}
}
パラメータ
次の表は、初期化に必要なパラメータを説明します。
| Key | Description | Required |
|---|---|---|
| projectId | ダッシュボード → プロジェクトの設定 | O |
| projectKey | ダッシュボード → プロジェクトの設定 | O |
| storeId | 以下の表を参考 | O |
| language | 言語(en、ko、ja...) | O |
| region | リージョン名(kr、jp、sg、us、eu) | O |
ストア識別子は、次の表をご参照ください。
| Key | Description |
|---|---|
| Store.google.ToString() | Google Play Store |
| Store.one.ToString() | ONE Store |
| Store.galaxy.ToString() | Galaxy Store |
| Store.amazon.ToString() | Amazon Store |
| Store.huawei.ToString() | Huawei Store |
| Store.pc.ToString() | PCストア |
| Store.steam.ToString() | Steamストア |
コールバック情報
次の表は、初期化コールバックに渡される情報を説明します。
| Key | Type | Description |
|---|---|---|
| Status | bool | 状態 |
| Language | string | 言語 |
| Country | string | 国 |
| RemoteIp | string | IP |
| Sandbox | bool | サンドボックスかどうか |
初期化 (イベントの受信)
この手順は、Unity Package 3.0.17以降のバージョンでは必要ありません。
はじめに NBaseイベントを受信するスクリプトを作成します。
このスクリプトは NBaseListenerと呼ばれ、シーンのどんなオブジェクトにも配置できます。このオブジェクトが永続的に存在するように DontDestroyOnLoadメソッドを呼び出すことをお勧めします。
下図は、シーンに NBaseListenerスクリプトを構成する例を示しています。

C# 例:
using UnityEngine;
using NBaseSDK;
public class NBaseListener: MonoBehaviour, NBaseEventListener
{
void Start()
{
DontDestroyOnLoad(this.gameObject);
NBaseSDK.NBase.SetEventListener(this);
}
}
ログイン機能
ログイン機能を使用する
開発会社で実装したログイン UIにより、ログインボタンをクリックしたときに動作する SDKログイン機能を使用するには、以下のコードを使用します。これが正常に動作するには、ログインに必要なコンソールとダッシュボードの設定がすべて完了している必要があります。
C# 例:
NBaseSDK.NBase.signIn(Provider.google.ToString(), (user, error) => {
if (error != null)
{
if (error.Code == NBaseSDK.NBase.ErrorCode.MEMBER_WITHDRAW) // Withdrawal status
{
// Withdrawal
Debug.Log(error.Message.ToString()); // Withdrawal message
}
else if (error.Code == NBaseSDK.NBase.ErrorCode.SERVICE_MAINTENANCE) // Maintenance
{
Debug.Log(error.Message.ToString()); // Maintenance message
// case 1: Use in-game popup implemented directly by the developer
// case 2: Call the code below to use the SDK's own popup
// NBaseSDK.NBase.showAppStatusPopup(user?.AppStatus, (status, error) => {
// // Popup handling
// });
}
else if (error.Code == NBaseSDK.NBase.ErrorCode.UPDATE_REQUIRED) // Update
{
Debug.Log(error.Message.ToString()); // Update message
// case 1: Use in-game popup implemented directly by the developer
// case 2: Call the code below to use the SDK's own popup
// NBaseSDK.NBase.showAppStatusPopup(user?.AppStatus, (status, error) => {
// // Popup handling
// });
}
else if (error.Code == NBaseSDK.NBase.ErrorCode.MEMBER_BANNED) // Access blocked
{
Debug.Log(error.Message.ToString()); // Block message
}
else
{
// signIn Failed
Debug.Log(error.Message.ToString());
}
}
else
{
// signIn Success
Debug.Log(user.ToString());
}
return;
});
アップデートまたはメンテナンス時に SDKが提供する独自のポップアップを使用する場合、以下のコードを追加します。
C# 例:
NBaseSDK.NBase.showAppStatusPopup(appStatus, (status, error) =>
{
bool shouldClose = false;
bool shouldNext = false;
var closeValue = status.Close;
var nextValue = status.Next;
if (closeValue != null)
{
if (bool.TryParse(closeValue.ToString(), out bool result))
{
shouldClose = result;
}
}
if (shouldClose)
{
// App Close
}
if (nextValue != null)
{
if (bool.TryParse(nextValue.ToString(), out bool result))
{
shouldNext = result;
}
}
if (shouldNext)
{
// Next, Optional update
}
});
パラメータ
次の表は、ログイン機能で使用する Providerの値を説明します。
| Key | Description |
|---|---|
| Provider.google.ToString() | |
| Provider.anonymous.ToString() | ゲスト |
| Provider.facebook.ToString() | |
| Provider.apple.ToString() | Apple |
| Provider.kakao.ToString() | Kakao |
| Provider.googleplay.ToString() | Play Games |
| Provider.steam.ToString() | Steam |
| Provider.x.ToString() | X |
| Provider.line.ToString() | LINE |
| Provider.naver.ToString() | NAVER |
| Provider.github.ToString() | GitHub |
| Provider.microsoft.ToString() | Microsoft |
| Provider.huawei.ToString() | Huawei |
ユーザー情報
次の表は、ユーザーオブジェクトのフィールドを説明します。
| Key | Type | Description |
|---|---|---|
| Id | string | ユーザーの固有 ID |
| SocialId | string | ソーシャル ID |
| Name | string | 氏名 (提供してくれる場合) |
| string | メール (提供してくれる場合) | |
| Token | string | トークン |
| Age | int | 年齢 (提供してくれる場合) |
| Profile | string | プロファイル (提供してくれる場合) |
| CustomField | string | カスタムフィールド |
| IsSignUp | bool | 会員登録しているかどうか |
| AppStatus | AppStatus | メンテナンス/アップデート状態 |
アプリの状態情報
次の表は、AppStatusオブジェクトのフィールドを説明します。
| Key | Type | Description |
|---|---|---|
| Message | string | メッセージ |
| StartedAt | long | 開始時間 |
| EndedAt | long | 終了時間 |
| CurrentAppVersion | string | 現在のアプリバージョン |
| UpdateAppVersion | string | アップデート後のアプリバージョン |
| CurrentAppVersionCode | string | 現在のアプリバージョンコード |
| UpdateAppVersionCode | string | アップデート後のアプリバージョンコード |
| IsForce | bool | 強制アップデートかどうか |
| Url | string | メンテナンス/アップデートが登録された URL |
SDK独自提供のログイン UI
GAMEPOT SDKが提供する完成された形のログイン UIを使用できます。
SDKが提供するログイン UIを呼び出すには、以下のコードを使用します。
C# 例:
NBaseSDK.NBase.openSignInUI((user, error) => {
if (error != null)
{
if (error.Code == NBaseSDK.NBase.ErrorCode.MEMBER_WITHDRAW) // Withdrawal status
{
// Withdrawal
Debug.Log(error.Message.ToString()); // Withdrawal message
}
else if (error.Code == NBaseSDK.NBase.ErrorCode.SERVICE_MAINTENANCE) // Maintenance
{
Debug.Log(error.Message.ToString()); // Maintenance message
// case 1: Use in-game popup implemented directly by the developer
// case 2: Call the code below to use the SDK's own popup
// NBaseSDK.NBase.showAppStatusPopup(user?.AppStatus, (status, error) => {
// // Popup handling
// });
}
else if (error.Code == NBaseSDK.NBase.ErrorCode.UPDATE_REQUIRED) // Update
{
Debug.Log(error.Message.ToString()); // Update message
// case 1: Use in-game popup implemented directly by the developer
// case 2: Call the code below to use the SDK's own popup
// NBaseSDK.NBase.showAppStatusPopup(user?.AppStatus, (status, error) => {
// // Popup handling
// });
}
else if (error.Code == NBaseSDK.NBase.ErrorCode.MEMBER_BANNED) // Access blocked
{
Debug.Log(error.Message.ToString()); // Block message
}
else
{
// signIn Failed
Debug.Log(error.Message.ToString());
}
}
else
{
// signIn Success
Debug.Log(user.ToString());
}
return;
});
自動ログイン(オプション)
初期化の後、最後にログインした認証手段で自動ログインを試行することができます。自動ログインを試行する前に、最終ログイン Providerタイプの確認をお勧めします。
C# 例:
// 最終ログイン Providerタイプを確認
string lastProviderType = NBaseSDK.NBase.getLastProviderType();
if (lastProviderType != Provider.none.ToString())
{
// 最終ログイン情報がある場合にのみ自動ログインを試行
NBaseSDK.NBase.signInLastLoggedIn((user, error) => {
if (error != null)
{
if (error.Code == NBaseSDK.NBase.ErrorCode.MEMBER_WITHDRAW) // Withdrawal status
{
// Withdrawal
Debug.Log(error.Message.ToString()); // Withdrawal message
}
else if (error.Code == NBaseSDK.NBase.ErrorCode.SERVICE_MAINTENANCE) // Maintenance
{
// Maintenance
Debug.Log(error.Message.ToString()); // Maintenance message
/* case 1: Use in-game popup implemented directly by the developer
case 2: Call the code below to use the SDK's own popup
NBaseSDK.NBase.showAppStatusPopup(user?.AppStatus, (status, error) => {
// Popup handling
});
*/
}
else if (error.Code == NBaseSDK.NBase.ErrorCode.UPDATE_REQUIRED) // Update
{
// Update
Debug.Log(error.Message.ToString()); // Update message
/* case 1: Use in-game popup implemented directly by the developer
case 2: Call the code below to use the SDK's own popup
NBaseSDK.NBase.showAppStatusPopup(user?.AppStatus, (status, error) => {
// Popup handling
});
*/
}
else if (error.Code == NBaseSDK.NBase.ErrorCode.MEMBER_BANNED) // Access blocked
{
// Access blocked
Debug.Log(error.Message.ToString()); // Block message
}
else
{
// signIn Failed
Debug.Log(error.Message.ToString());
}
}
else
{
// signIn Success
Debug.Log(user.ToString());
}
});
}
else
{
// 最終ログイン情報なし
Debug.Log("No last login provider found");
}
getLastProviderType() メソッドは、最後にログインした Providerタイプを返します。
signInLastLoggedIn() メソッドは、最後にログインした認証手段で自動ログインを試みます。
コールバック情報
次の表は、自動ログインコールバックに渡される値を説明します。
| Key | Type | Description |
|---|---|---|
| user | User | ログイン成功時のユーザー情報 |
| error | Error | ログイン失敗時のエラー情報 |
ログアウト
SDKログアウト機能を使用するには、以下のコードをお使いください。
C# 例:
NBaseSDK.NBase.signOut((status, error) => {
if (error != null)
{
// signOut Failed
Debug.Log("signOut Failed: " + error.Message.ToString());
}
else
{
// signOut Success
Debug.Log("signOut Success: " + status.ToString());
// ログアウト成功後の処理ロジック
}
});
コールバック情報
次の表は、ログアウトコールバックに渡される値を説明します。
| Key | Type | Description |
|---|---|---|
| status | Boolean | 成功したかどうか |
退会
SDK退会機能を使用するには、以下のコードを使用します。
C# 例:
NBaseSDK.NBase.deleteMember(providerId, (status, error) => {
if (error != null)
{
// deleteMember Failed
Debug.Log("deleteMember Failed: " + error.Message.ToString());
}
else
{
// deleteMember Success
Debug.Log("deleteMember Success: " + status.ToString());
// 退会成功後の処理ロジック
}
});
パラメータ
次の表は、退会時に渡すべきパラメータを説明します。
| Key | Type | Description | Required |
|---|---|---|---|
| providerId | String | ログインした Providerタイプ (例: Provider.google.ToString()、Provider.anonymous.ToString()など) | O |
コールバック情報
次の表は、退会コールバックの値を説明します。
| Key | Type | Description |
|---|---|---|
| status | Boolean | 成功したかどうか |
独自の IDとパスワード認証(オプション)
ユーザーがメールアドレスとパスワードを使用してログインできるようにする認証メソッドです。
ユーザーのメールアドレスとパスワードに基づいてユーザー認証を行います。さらに、この機能は、従来のメール/パスワードベースの認証システムで重要な役割を果たします。
C# 例:
NBaseSDK.NBase.signInWithPassword(username, password, (user, error) => {
if (error != null)
{
Debug.Log(error.Message.ToString());
return;
}
});
認証情報でログイン(オプション)
外部から取得したソーシャルアカウントの認証情報(Access Token)を使用してログインするには、以下のコードを使用します。
C# 例:
NBaseSDK.NBase.signInWithCredential(Provider.google.ToString(), providerToken, (user, error) => {
if (error != null)
{
if (error.Code == NBaseSDK.NBase.ErrorCode.SERVICE_MAINTENANCE) // Maintenance
{
// Maintenance
Debug.Log("Maintenance: " + error.Message.ToString());
/* case 1: Use in-game popup implemented directly by the developer
case 2: Call the code below to use the SDK's own popup
NBaseSDK.NBase.showAppStatusPopup(user?.AppStatus, (status, error) => {
// Popup handling
});
*/
}
else if (error.Code == NBaseSDK.NBase.ErrorCode.UPDATE_REQUIRED) // Update
{
// Update
Debug.Log("Update: " + error.Message.ToString());
/* case 1: Use in-game popup implemented directly by the developer
case 2: Call the code below to use the SDK's own popup
NBaseSDK.NBase.showAppStatusPopup(user?.AppStatus, (status, error) => {
// Popup handling
});
*/
}
else
{
// signInWithCredential Failed
Debug.Log("signInWithCredential Failed: " + error.Message.ToString());
}
}
else
{
// signInWithCredential Success
Debug.Log("signInWithCredential Success: " + user.ToString());
}
});
パラメータ
次の表は、認証情報ログインに必要なパラメータを説明します。
| Key | Type | Description | Required |
|---|---|---|---|
| provider | String | Provider ID (例: Provider.google.ToString()、Provider.facebook.ToString()など) | O |
| providerToken | String | ソーシャルアカウントの Access Token | O |
コールバック情報
次の表は、認証情報ログインコールバックの値を説明します。
| Key | Type | Description |
|---|---|---|
| user | User | ログイン成功時のユーザー情報 |
| error | Error | ログイン失敗時のエラー情報 |
外部アカウント連携機能
GAMEPOTユーザーアカウントに外部ソーシャルアカウントを連携して管理する機能を説明します。
外部アカウント連携機能を使用する
現在の GAMEPOTユーザーアカウントと別のソーシャルアカウントを連携するには、以下のコードを使用します。
C# 例:
NBaseSDK.NBase.createLinking(Provider.google.ToString(), (linkingId, error) => {
if (error != null)
{
// createLinking Failed
Debug.Log("createLinking Failed: " + error.Message.ToString());
}
else
{
// createLinking Success
Debug.Log("createLinking Success: " + linkingId);
// アカウント連携成功後の処理ロジック
}
});
パラメータ
次の表は、アカウント連携に必要なパラメータを説明します。
| Key | Type | Description | Required |
|---|---|---|---|
| providerId | String | 連携対象の Providerタイプ (例: Provider.google.ToString()、Provider.facebook.ToString()など) | O |
コールバック情報
次の表は、アカウント連携コールバックの値を説明します。
| Key | Type | Description |
|---|---|---|
| linkingId | String | 連携成功時に返される連携 ID |
連携リストの確認
現在の GAMEPOTユーザーアカウントと連携されたソーシャルアカウントリストを確認するには、以下のコードを使用します。
C# 例:
NBaseSDK.NBase.getLinkedLists((linkings, error) => {
if (error != null)
{
// getLinkedLists Failed
Debug.Log("getLinkedLists Failed: " + error.Message.ToString());
}
else
{
// getLinkedLists Success
Debug.Log("getLinkedLists Success: " + linkings.ToString());
// 連携リスト確認後の処理ロジック
}
});
コールバック情報
次の表は、アカウント連携リストの確認時に提供される値を説明します。
| Key | Type | Description |
|---|---|---|
| linkings | List |
連携されたアカウントリスト |
Linkingオブジェクト
次の表は、Linkingオブジェクトのフィールドを説明します。
| Key | Type | Description |
|---|---|---|
| id | String | 連携 ID (アカウント連携解除時に使用) |
| username | String | ソーシャル ID |
| provider | String | ソーシャル providerタイプ |
連携解除
現在の GAMEPOTユーザーアカウントから特定のソーシャルアカウント連携を解除するには、以下のコードを使用します。
C# 例:
NBaseSDK.NBase.deleteLinking(linkingId, (status, error) => {
if (error != null)
{
// deleteLinking Failed
Debug.Log("deleteLinking Failed: " + error.Message.ToString());
}
else
{
// deleteLinking Success
Debug.Log("deleteLinking Success: " + status.ToString());
// 連携解除成功後の処理ロジック
}
});
パラメータ
次の表は、アカウント連携解除に必要なパラメータを説明します。
| Key | Type | Description | Required |
|---|---|---|---|
| linkingId | String | 解除対象の連携 ID (createLinkingまたは getLinkedListsから取得) | O |
コールバック情報
次の表は、アカウント連携解除コールバックの値を説明します。
| Key | Type | Description |
|---|---|---|
| status | Boolean | 成功したかどうか |
アプリ状態の確認
現在のクライアントのメンテナンス / アップデート状態を確認するには、以下のコードを使用します。
C# 例:
NBaseSDK.NBase.checkAppStatus((status, error) =>
{
switch(status.State)
{
case NBaseSDK.NBase.AppStatus.Status.SUCCESS:
// SUCCESS
break;
case NBaseSDK.NBase.AppStatus.Status.FAILED:
// FAILED
break;
case NBaseSDK.NBase.AppStatus.Status.MAINTENANCE:
// Maintenance
/* case 1: Use in-game popup implemented directly by the developer
case 2: Call the code below to use the SDK's own popup
NBaseSDK.NBase.showAppStatusPopup(status, (status, error) => {
// Popup handling
});
*/
break;
case NBaseSDK.NBase.AppStatus.Status.UPDATE:
// Update
/* case 1: Use in-game popup implemented directly by the developer
case 2: Call the code below to use the SDK's own popup
NBaseSDK.NBase.showAppStatusPopup(status, (status, error) => {
// Popup handling
});
*/
break;
}
});
Unity Standaloneのご案内
Standaloneは Mac、Windows、Linux用ビルドを表します。
GAMEPOT SDKはクロスプラットフォームをサポートしますが、モバイルと Standaloneでサポートされる機能が異なります。下記表を参照して開発計画を立ててください。
| Service | Android | iOS | Web | PC | 備考 |
|---|---|---|---|---|---|
| ログイン | O | O | O | PCログイン後、トークンを検証 | |
| 決済 | O | O | O | PC決済ページに移動 | |
| お知らせ | O | O | O | O | UIを除くリスト照会を提供 |
| カスタマーサポート | O | O | O | O | PCに移動 |
| リーダーボード | O | O | O | O | |
| 友達管理 | O | O | O | O | |
| プッシュ | O | O | X | X | |
| メンテナンス | O | O | O | O | |
| アップデート | O | O | O | O | |
| クーポン | O | O | O | O | |
| チャット | O | O | O | O | |
| データ保存場所 | O | O | O | O | |
| セキュリティ | O | O | X | 準備中 | |
| プレイヤー | O | O | O | O |
Webバージョンは GamePot 3.0 Typescriptバージョンにのみ提供される機能です。
Newtonsoft.Jsonクラッシュ
NBase Unity SDKは、APIリクエストのパースに Unityの Newtonsoft JSONパッケージを使用します。JSONは最も一般的に使用されるライブラリの1つであるため、プロジェクトに既に JSONが存在して次のようなライブラリ重複エラーが発生する可能性があります。
この場合、Plugins/StandaloneパスにあるNewtonsoft.Jsonファイルを削除するか、プロジェクトに既にある JSONライブラリを削除して Unityの JSONを使用します。Unityの JSONパッケージは Unityエンジンと一緒に動作するように修正され、IL2CPPを完璧にサポートするバージョンです。
トラブルシューティング
Q. UnityPlayerActivity.java uses or overrides a deprecated API.
A. Edit > Project Settings > Player > Publishing settings > Custom Properties Gradle Templateにチェックを入れてください。
Q. error:1E08010C:DECODER routines::unsupported
A. Google Authentication Keyが一致しない場合に発生する現象で、Google Play Storeガイドを参照してキーを正確に入力してください。
Q. ONE Storeや GAMEPOTベータのような公式 Mavenアドレスは問題ありませんが、Maven、jitpack.ioからはダウンロードできません。
Unityで以下のようなエラーが発生します。
テキスト例:
Could not determine the dependencies of task ':unityLibrary:compileReleaseAidl'.
> Could not resolve all task dependencies for configuration ':unityLibrary:releaseCompileClasspath'.
> Could not find io.nbase:nbasesdk:0.0.71-beta.
Required by:
project :unityLibrary
公式のパブリック Mavenを使用しないモジュールの場合、以下のように Mavenアドレスを入力する必要があります。NBaseSDKDependenciesファイル設定時に Mavenアドレスも入力してください。
XML例:
<!-- # ONE Store -->
<androidPackage spec="com.onestorecorp.sdk:sdk-iap:21.01.00"/>
<repositories>
<repository>https://repo.onestore.co.kr/repository/onestore-sdk-public</repository>
</repositories>
</androidPackage>
<!-- # NBase Beta mavenリポジトリ -->
<androidPackage spec="io.nbase:nbasesdk:3.0.84"/>
<repositories>
<repository>https://repo.nbase.io/repository/nbase-releases/</repository>
</repositories>
</androidPackage>
jitpack.ioもアドレスを追加してください。
Q. minimum API Levelアップグレードのご案内
A. 基本 API Levelを22から24にアップグレードしてください。
下図は API Levelを調整する場所を示しています。

Q. Authorization failed: Error Domain=AKAuthenticationError Code=-7026
A. TARGETS > +Capabilityをクリックして Sign in with Appleを追加してください。
下図は、Sign in with Apple機能を追加する画面を示しています。

Q. Couldn't get credential from result.10: Developer console is not set up correctly
A. このエラーは、Google Cloud Console > ユーザー認証情報 > OAuth 2.0クライアント IDでウェブアプリケーションタイプのクライアント IDが設定されていないため発生する可能性があります。
Q. 16: Cannot find a matching credential.
A. この場合は、Google Cloud Console > ユーザー認証情報 > OAuth 2.0クライアント IDが登録されていないため発生する可能性があるエラーです。
Q. java.lang.NoClassDefFoundError: Failed resolution of: Lcom/android/billingclient/api/BillingClient;
A. 以下のコードを追加してください。
XML例:
<androidPackage spec="com.android.billingclient:billing:7.0.0" />
Q. (iOS) アプリを実行するとクラッシュが発生し、「/AdapterProviderFacebook' (no such file)」エラーが確認される
A. Xcode TARGETS → General → Frameworks, Libraries, and Embedded Content → AdapterProviderFacebook.xcframeworkを追加してください。
Q. (iOS) 実行すると「/usr/lib/swift/NBase.framework/NBase' (no such file, not in dyld cache)」エラーが発生
A. 以下のように NBase.xcframeworkを追加してください。
下図は、NBase.xcframeworkをプロジェクトに追加する手順を示しています。


Q. (iOS) iOS 18環境で「NSBundle file:///System/Library/Frameworks/Metal.framework/ principal class is nil because all fallbacks have failed」エラーが発生
A. Edit Schemeウィンドウ(ショートカット: CMD + SHIFT + ,)を開き、Metal項目の API Validationからチェックを外してください。
下図は、Metal API Validationオプションを無効化する場所を示しています。
