Managing Currencies
概要
この記事では、管理者ポータルを使用して、ストアでの取引に使用できる通貨を設定する方法について説明します。現実通貨と仮想通貨のどちらも、プレイヤーが取引に使用する通貨として設定できます。作成した仮想通貨も、プレイヤーが獲得したり、プレイヤーに授与したりできます。ストアまたはアイテムを作成する前に、少なくとも 1 つの通貨を設定する必要があります。
パブリッシャーの名前空間で通貨を作成すると、すべての名前空間で通貨が使用可能になります。
特定のゲームの名前空間で通貨を作成した場合、その通貨はその特定の名前空間でのみ使用できます。
同じコードと記号を持つ通貨を複数の名前空間で作成した場合、それらは異なる通貨として扱われます。
目標
- 現実通貨を管理する方法を説明する。
- 仮想通貨を管理する方法を説明する。
前提条件
- AccelByte 管理者ポータルへのアクセス権を所有している。
- 適切な 名前空間 を作成している。
管理者ポータルで現実通貨を管理する
管理者ポータルで現実通貨を作成すると、その通貨をプレイヤーが取引に使用できるようになります。
通貨を作成する名前空間で、[E-Commerce (E コマース)]セクションに移動し、[Currencies (通貨)]メニューを開きます。
新しい通貨を追加するには、[Currencies (通貨)]ページで[Add (追加)]をクリックします。
[Add Currency (通貨を追加)]フォームが開きます。必須フィールドに記入してください。
- 現実通貨は、価格に使用する場合、小数点以下 2 桁の値にします。
- [Currency Type (通貨のタイプ)]を選択し、[Real (現実)]を選択して現実通貨を作成します。
- [Currency Code (通貨コード)]フィールドに通貨の一意の識別コードを入力します。現実通貨については、米ドルの USD などの ISO_4217 標準化に従ってください。
- 通貨に関連付けられている記号、たとえば「$」を、[Currency Symbol (通貨記号)]フィールドに入力します。キーボードにない記号を入力するには、その記号の Unicode を入力します。
- 完了したら、[Add (追加)]をクリックします。新しい通貨がリストに追加されます。
管理者ポータルで仮想通貨を管理する
管理者ポータルで仮想通貨を作成すると、その通貨をプレイヤーが取引に使用できるようになります。
通貨を作成する名前空間で、[E-Commerce (E コマース)]セクションに移動し、[Currencies (通貨)]メニューを開きます。
新しい通貨を追加するには、[Currencies (通貨)]ページで[Add (追加)]をクリックします。
[Add Currency (通貨を追加)]フォームが開きます。必須フィールドに入力してください。
- [Currency Type (通貨のタイプ)]を選択し、[Virtual (仮想)]を選択して仮想通貨を作成します。
- 仮想通貨には、独自の通貨コードを作成できます。
- [Currency Symbol (通貨記号)]フィールドに、通貨に関連付けられている記号、たとえば「$」を入力します。キーボードにない記号を入力するには、その記号の Unicode を入力します。仮想通貨には、任意の文字の組み合わせを、最大 8 文字で入力できます。
完了したら、[Add (追加)]をクリックします。新しい通貨がリストに追加されます。
サポートされている通貨を SDK を使用して取得する
管理者ポータルで設定した通貨の情報を、Unity と Unreal Engine 用の当社の Client SDK を使用して、ゲームクライアントが取得できるようにすることも可能です。
- Unreal Engine
- Unity
Unreal SDK
FAccelByteModelsCurrencyList currencyListResult;
bool bGetCurrencyListDone = false;
FString Namespace = TEXT("sample-namespace");
TArray<FAccelByteModelsCurrencyList> GetCurrencyListAllTypeResult;
FApiClientPtr ApiClient = FMultiRegistry::GetApiClient(TEXT(“your-key”));
ApiClient->Currency.GetCurrencyList(Namespace,
THandler<TArray<FAccelByteModelsCurrencyList>>::CreateLambda([=]
(const TArray<FAccelByteModelsCurrencyList>& Result)
{
// Do something if GetCurrencyList has been successful
UE_LOG(LogTemp, Error, TEXT(" Success"));
}), FErrorHandler::CreateLambda([](int32 ErrorCode, const FString& ErrorMessage)
{
// Do something if QueryUserAchievements has an error
UE_LOG(LogTemp, Error, TEXT("Error. Code: %d, Reason: %s"), ErrorCode, *ErrorMessage)
});
Unity SDK
Result<CurrencyList[]> currencyListResult = null;
// Check for CurrencyType
AccelBytePlugin.GetCurrencies().GetCurrencyList(result =>
{
if (result.IsError)
{
// Do something if QueryUserAchievements has an error
Debug.Log($"Error GetCurrencyList, Error Code: {result.Error.Code} Error Message: {result.Error.Message}");
}
else
{
// Do something if GetCurrencyList has been successful
}
});