文档

支持

Economy

Economy

配置

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

通过
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;