プレイヤーの残高
Use the SDK to manage player currency balances.
読み終わるまでの所要時間 3 分最終更新 6ヶ月前
PlayerBalancesこれらのメソッドは、Authentication SDK から、現在サインインしているプレイヤーの残高を返します。
GetBalancesAsync
現在のユーザーの通貨残高を取得します。任意で を指定できます。
GetBalancesOptions残高を取得するとき、 を使用して、フェッチする残高数の制限 (1 - 100) を設定できます。これはページ区切りに役立ちます。デフォルトの数は 20 です。
GetBalancesOptions以下のサンプルコードでは、現在のユーザーの最初の 5 件の残高が取得され、その後、次の 5 件が取得されます。これには、設定からすでに削除された通貨のものも含まれます。
// Optional, defaults to 20GetBalancesOptions options = new GetBalancesOptions{ ItemsPerFetch = 5};GetBalancesResult getBalancesResult = await EconomyService.Instance.PlayerBalances.GetBalancesAsync(options);List<PlayerBalance> firstFiveBalances = getBalancesResult.Balances;// do something with your balancesif (getBalancesResult.HasNext) { getBalancesResult = await getBalancesResult.GetNextAsync(options.ItemsPerFetch); List<PlayerBalance> nextFiveBalances = getBalancesResult.Balances; // do something with your balances}
これらのメソッドは を返します。GetBalancesResult を参照してください。
GetBalancesResultGetBalancesOptions
GetBalancesAsync- : 整数。デフォルトは 20 です。これを使用して、呼び出しごとにフェッチする残高の最大件数を 1 から 100 の間で設定します。
ItemsPerFetch
GetBalancesResult
GetBalancesResult- : 現在フェッチされた残高が含まれる
Balances。List<PlayerBalance>
これには以下のメソッドがあります。
- : このメソッドは、より多くの結果を非同期でフェッチします。これには 1 つの任意のパラメーターがあり、フェッチされる結果の数を制限できます (1 から 100 を設定でき、デフォルトは 20 です)。これによって新しい結果が返され、元のアイテムと新しくフェッチされたアイテムの両方が
GetNextAsync(int itemsToFetch = 20)リストに含められます。Balances
SetBalanceAsync
指定した通貨の残高を指定値に設定します。
このメソッドには、書き込みロックの設定に使用される オブジェクトを任意で指定できます。これを指定すると、楽観的コンカレンシーを実現するために、 が直前の読み取りで受け取った と一致しない限り例外がスローされます。指定しないと、データ内に存在する に関係なくトランザクションが進みます。
SetBalancesOptionswriteLockwriteLockwriteLock操作が成功した場合、このメソッドは、更新の適用後に現在の残高を返します。
string currencyID = "GOLD_BARS";int newAmount = 1000;string writeLock = "someLockValueFromPreviousRequest";SetBalanceOptions options = new SetBalanceOptions{ WriteLock = writeLock};PlayerBalance newBalance = await EconomyService.Instance.PlayerBalances.SetBalanceAsync(currencyID, newAmount);// ORPlayerBalance otherNewBalance = await EconomyService.Instance.PlayerBalances.SetBalanceAsync(currencyID, newAmount, options);
SetBalanceOptions
SetBalanceAsync- : 文字列。デフォルトは
WriteLockです。これを使用して、楽観的コンカレンシーのための書き込みロックを設定します。書き込みロック を参照してください。null
IncrementBalanceAsync
指定値に応じて、指定した通貨の残高を増やします。
このメソッドには、書き込みロックの設定に使用される オブジェクトを任意で指定できます。これを指定すると、楽観的コンカレンシーを実現するために、 が直前の読み取りで受け取った と一致しない限り例外がスローされます。指定しないと、データ内に存在する に関係なくトランザクションが進みます。
IncrementBalancesOptionswriteLockwriteLockwriteLock操作が成功した場合、このメソッドは、更新の適用後に現在の残高を返します。
string currencyID = "GOLD_BARS";int incrementAmount = 1000;string writeLock = "someLockValueFromPreviousRequest";IncrementBalanceOptions options = new IncrementBalanceOptions{ WriteLock = writeLock};PlayerBalance newBalance = await EconomyService.Instance.PlayerBalances.IncrementBalanceAsync(currencyID, newAmount);// ORPlayerBalance otherNewBalance = await EconomyService.Instance.PlayerBalances.IncrementBalanceAsync(currencyID, newAmount, options);
IncrementBalanceOptions
IncrementBalanceAsync- : 文字列。デフォルトは
WriteLockです。これを使用して、楽観的コンカレンシーのための書き込みロックを設定します。書き込みロック を参照してください。null
DecrementBalanceAsync
指定値に応じて、指定した通貨の残高を減らします。
このメソッドには、書き込みロックの設定に使用される オブジェクトを任意で指定できます。これを指定すると、楽観的コンカレンシーを実現するために、 が直前の読み取りで受け取った と一致しない限り例外がスローされます。指定しないと、データ内に存在する に関係なくトランザクションが進みます。
DecrementBalanceOptionswriteLockwriteLockwriteLock操作が成功した場合、このメソッドは、更新の適用後に現在の残高を返します。
string currencyID = "GOLD_BARS";int decrementAmount = 1000;string writeLock = "someLockValueFromPreviousRequest";DecrementBalanceOptions options = new DecrementBalanceOptions{ WriteLock = writeLock};PlayerBalance newBalance = await EconomyService.Instance.PlayerBalances.DecrementBalanceAsync(currencyID, newAmount);// ORPlayerBalance otherNewBalance = await EconomyService.Instance.PlayerBalances.DecrementBalanceAsync(currencyID, newAmount, options);
DecrementBalanceOptions
DecrementBalanceAsync- : 文字列。デフォルトは
WriteLockです。これを使用して、楽観的コンカレンシーのための書き込みロックを設定します。書き込みロック を参照してください。null
PlayerBalance
プレイヤーの残高は、プレイヤーの 1 つの通貨残高を表します。これには以下のフィールドがあります。
- : この残高が表す通貨の ID。
CurrencyId - : プレイヤーが所有するこの通貨の金額 (整数)。
Balance - :
WriteLockの現在の文字列。writeLock - : この残高が作成された日付。これは EconomyDate オブジェクトです。
Created - : この残高が変更された日付。これは EconomyDate オブジェクトです。
Modified
また、以下のヘルパーメソッドがあります。
GetCurrencyDefinitionAsync
これは、この残高に関連付けられた通貨の通貨定義を取得するための便利なメソッドです。これは、CurrencyDefinition を返します。
PlayerBalance myPlayerBalance = ... // Get a player balance from one of the above methodsCurrencyDefinition currencyDefForMyPlayerBalance = myPlayerBalance.GetCurrencyDefinitionAsync();
BalanceUpdated
このイベントをサブスクライブすると、SDK が特定の通貨の残高を更新したときに通知を受け取ることができます。サブスクライバーには、更新された残高の通貨 ID が渡されます。
EconomyService.Instance.PlayerBalances.BalanceUpdated += currencyID => { Debug.Log($"The currency that was updated was {currencyID}");};