文档

支持

Economy

Economy

配置

Retrieve your Economy configuration using the Configuration namespace.
阅读时间6 分钟最后更新于 1 个月前

通过
Configuration
命名空间中的方法,可以从全局经济配置中检索物品。
SyncConfigurationAsync()
将缓存最新的 Economy 配置,之后您可以调用
GetCurrencies()
等方法从缓存中读取配置。如果发布了新配置,则必须再次调用
SyncConfigurationAsync()
以更新缓存。

SyncConfigurationAsync

获取当前发布的 Economy 配置并缓存到 SDK 中。必须在调用其他配置方法(例如
GetCurrencies()
)之前调用该方法,否则会出现异常。
await EconomyService.Instance.Configuration.SyncConfigurationAsync();

货币

GetCurrencies

从缓存配置中检索所有货币。返回
CurrencyDefinition
对象列表。
List<CurrencyDefinition> definitions = EconomyService.Instance.Configuration.GetCurrencies();

GetCurrency

使用缓存配置中的货币 ID 获取指定的
CurrencyDefinition
。如果货币不存在,则返回
null
string currencyID = "GOLD_BARS";CurrencyDefinition goldCurrencyDefinition = EconomyService.Instance.Configuration.GetCurrency(currencyID);

CurrencyDefinition

CurrencyDefinition
对象代表一项货币配置,包含以下数据:
  • Id
    :货币 ID。
  • Name
    :人类可读的货币名称。
  • Type
    :在 Economy 后台中定义的物品类型(对于所有
    CurrencyDefinition
    对象,类型都是
    CURRENCY
    )。
  • Initial
    :玩家初始获得的货币数量。
  • Max
    :(可选项,0 表示无上限)玩家可拥有的最大货币量。
  • CustomData
    :与此货币定义关联的任何自定义数据,形式为
    Dictionary<string, object>
    (参阅使用 CustomDataDeserializable)。
  • Created
    :该货币的创建日期。它是一个 EconomyDate 对象。
  • Modified
    :该货币的修改日期。它是一个 EconomyDate 对象。
此外,还可以采用以下便捷方法:

GetPlayerBalance

此方法获取当前登录玩家的
CurrencyDefinition
指定货币余额。它返回玩家余额中指定的
PlayerBalance
string currencyID = "GOLD_BARS";CurrencyDefinition goldCurrencyDefinition = EconomyService.Instance.Configuration.GetCurrency(currencyID);PlayerBalance playersGoldBarBalance = await goldCurrencyDefinition.GetPlayerBalanceAsync();

背包

GetInventoryItems

从缓存的配置中检索所有背包物品。返回
InventoryItemDefinition
对象列表。
List<InventoryItemDefinition> definitions = EconomyService.Instance.Configuration.GetInventoryItems();

GetInventoryItem

使用缓存配置中的物品 ID 检索指定的
InventoryItemDefinition
。如果该物品不存在,则返回
null
string itemID = "SWORD";InventoryItemDefinition definition = EconomyService.Instance.Configuration.GetInventoryItem(itemID);

InventoryItemDefinition

InventoryItemDefinition
对象代表一项背包物品配置,并包含以下数据:
  • Id
    :背包物品 ID。
  • Name
    :人类可读的名称。
  • Type
    :在 Economy 后台中定义的物品类型(对于所有
    InventoryItemDefinition
    对象,类型都是
    INVENTORY_ITEM
    )。
  • CustomData
    :与此物品定义关联的任何自定义数据,形式为
    Dictionary<string, object>
    (参阅使用 CustomDataDeserializable)。
  • Created
    :该物品的创建日期。它是一个 EconomyDate 对象。
  • Modified
    :该物品的修改日期。它是一个 EconomyDate 对象。
此外,还可以使用以下辅助器方法:

GetAllPlayersInventoryItems

获取当前登录玩家的所有背包物品。返回玩家背包中定义的
GetInventoryResult
string itemID = "SWORD";InventoryItemDefinition definition = EconomyService.Instance.Configuration.GetInventoryItem(itemID);GetInventoryResult allThePlayersSwords = await definition.GetAllPlayersInventoryItemsAsync();

购买

虚拟购买

GetVirtualPurchases

从缓存的配置中检索所有虚拟购买。返回
VirtualPurchaseDefinition
对象列表。
List<VirtualPurchaseDefinition> definitions = EconomyService.Instance.Configuration.GetVirtualPurchases();

GetVirtualPurchase

从缓存的配置中检索一项虚拟购买。返回一个
VirtualPurchaseDefinition
对象。
string purchaseId = "VIRTUAL_PURCHASE_ID"VirtualPurchaseDefinition definition = EconomyService.Instance.Configuration.GetVirtualPurchase(purchaseId);

VirtualPurchaseDefinition

VirtualPurchaseDefinition
对象代表您配置中虚拟购买的定义。它由许多组件对象组成,如下所列。
VirtualPurchaseDefinition
具有以下字段:
  • Id
    :购买定义的 ID。
  • Name
    :人类可读的名称。
  • Type
    :在 Economy 后台中定义的物品类型(对于所有
    VirtualPurchaseDefinition
    对象,类型都是
    VIRTUAL_PURCHASE
    )。
  • CustomData
    :与此购买定义关联的任何自定义数据,形式为
    Dictionary<string, object>
    (参阅使用 CustomDataDeserializable)。
  • CustomDataDeserializable
    :与此购买定义关联的任何自定义数据,形式为
    IDeserializable
    (参阅使用 CustomDataDeserializable)。
  • Created
    :此购买定义的创建日期。它是一个 EconomyDate 对象。
  • Modified
    :此购买定义的修改日期。它是一个 EconomyDate 对象。
  • Costs
    :与此购买相关的成本列表,形式为
    PurchaseItemQuantity
  • Rewards
    :与此购买相关的所得内容列表,形式为
    PurchaseItemQuantity

真实货币购买

GetRealMoneyPurchases

从缓存的配置中检索所有真实货币购买。返回
RealMoneyPurchaseDefinition
对象列表。
List<RealMoneyPurchaseDefinition> definitions = EconomyService.Instance.Configuration.GetRealMoneyPurchases();

GetRealMoneyPurchase

从缓存的配置中检索一项真实货币购买。返回一个
RealMoneyPurchaseDefinition
对象。
string purchaseId = "REAL_MONEY_PURCHASE_ID"RealMoneyPurchaseDefinition definition = EconomyService.Instance.Configuration.GetRealMoneyPurchase(purchaseId);

RealMoneyPurchaseDefinition

RealMoneyPurchaseDefinition
对象代表您配置中真实货币购买的定义。它由许多组件对象组成,如下所列。
RealMoneyPurchaseDefinition
具有以下字段:
  • Id
    :购买定义的 ID。
  • Name
    :人类可读的名称。
  • Type
    :在 Economy 后台中定义的物品类型(对于所有
    RealMoneyPurchaseDefinition
    对象,类型都是
    MONEY_PURCHASE
    )。
  • CustomData
    :与此购买定义关联的任何自定义数据,形式为
    Dictionary<string, object>
    (参阅使用 CustomDataDeserializable)。
  • Created
    :此购买定义的创建日期。它是一个 EconomyDate 对象。
  • Modified
    :此购买定义的修改日期。它是一个 EconomyDate 对象。
  • StoreIdentifiers
    :此次购买的商店标识符。它是一个 StoreIdentifiers 对象。
  • Rewards
    :与此购买相关的所得内容列表,形式为
    PurchaseItemQuantity

StoreIdentifiers

StoreIdentifers
对象包含 Google 和 Apple 商店标识符。在 Unity Dashboard(Unity 后台)的“商店关联”步骤中创建购买时会设置这些对象。可以在 Unity Dashboard(Unity 后台)中单击您的购买并向下滚动到“商店关联”,以此编辑这些对象。

PurchaseItemQuantity

PurchaseItemQuantity
表示与购买相关的货币/背包物品的数量。每个数量都与一种货币/背包物品类型相关(例如,4 把剑、10 个金币等)。它包含以下字段:
  • Item
    :指向此数量所表示的物品定义的
    EconomyReference
  • Amount
    :所表示的物品的数量(整数)。

EconomyReference

EconomyReference
是对购买中另一个定义的引用。它采用一种方法:
  • GetReferencedConfigurationItem()
    ,用于获取关联物品。
以这种方式获取引用物品是同步发生的,因为它不需要额外的网络请求,并且获取的引用物品与检索购买信息时相同(在获取购买信息和访问引用之间的时间,对定义实施的任何更改都不会反映在引用物品中)。

使用 CustomDataDeserializable

自定义数据需在 Unity Dashboard(Unity 后台)中设置。选择一项货币、背包物品或购买,导航到自定义数据,然后添加 JSON 格式的数据。 自定义数据存储在所获取配置物品的
CustomDataDeserializable
中。其类型为
IDeserializable
。这样,即可将物品的自定义数据反序列化到您自己的自定义类中。
例如,如果游戏具有颜色稀有度系统,则在后台中物品可能具有以下 JSON 代码:
{ "rarity": "purple"}
您可以通过以下方式反序列化实例数据:
class MyCustomData{ public string Rarity}MyCustomData fetchedCustomData = fetchedConfigItem.CustomDataDeserializable.GetAs<MyCustomData>();string rarity = fetchedCustomData.Rarity;