配置
Retrieve your Economy configuration using the Configuration namespace.
阅读时间6 分钟最后更新于 6 个月前
通过 命名空间中的方法,可以从全局经济配置中检索物品。
ConfigurationSyncConfigurationAsync()GetCurrencies()SyncConfigurationAsync()SyncConfigurationAsync
获取当前发布的 Economy 配置并缓存到 SDK 中。必须在调用其他配置方法(例如 )之前调用该方法,否则会出现异常。
GetCurrencies()await EconomyService.Instance.Configuration.SyncConfigurationAsync();
货币
GetCurrencies
从缓存配置中检索所有货币。返回 对象列表。
CurrencyDefinitionList<CurrencyDefinition> definitions = EconomyService.Instance.Configuration.GetCurrencies();
GetCurrency
使用缓存配置中的货币 ID 获取指定的 。如果货币不存在,则返回 。
CurrencyDefinitionnullstring currencyID = "GOLD_BARS";CurrencyDefinition goldCurrencyDefinition = EconomyService.Instance.Configuration.GetCurrency(currencyID);
CurrencyDefinition
CurrencyDefinition- :货币 ID。
Id - :人类可读的货币名称。
Name - :在 Economy 后台中定义的物品类型(对于所有
Type对象,类型都是CurrencyDefinition)。CURRENCY - :玩家初始获得的货币数量。
Initial - :(可选项,0 表示无上限)玩家可拥有的最大货币量。
Max - :与此货币定义关联的任何自定义数据,形式为
CustomData(参阅使用 CustomDataDeserializable)。Dictionary<string, object> - :该货币的创建日期。它是一个 EconomyDate 对象。
Created - :该货币的修改日期。它是一个 EconomyDate 对象。
Modified
此外,还可以采用以下便捷方法:
GetPlayerBalance
string currencyID = "GOLD_BARS";CurrencyDefinition goldCurrencyDefinition = EconomyService.Instance.Configuration.GetCurrency(currencyID);PlayerBalance playersGoldBarBalance = await goldCurrencyDefinition.GetPlayerBalanceAsync();
背包
GetInventoryItems
从缓存的配置中检索所有背包物品。返回 对象列表。
InventoryItemDefinitionList<InventoryItemDefinition> definitions = EconomyService.Instance.Configuration.GetInventoryItems();
GetInventoryItem
使用缓存配置中的物品 ID 检索指定的 。如果该物品不存在,则返回 。
InventoryItemDefinitionnullstring itemID = "SWORD";InventoryItemDefinition definition = EconomyService.Instance.Configuration.GetInventoryItem(itemID);
InventoryItemDefinition
InventoryItemDefinition- :背包物品 ID。
Id - :人类可读的名称。
Name - :在 Economy 后台中定义的物品类型(对于所有
Type对象,类型都是InventoryItemDefinition)。INVENTORY_ITEM - :与此物品定义关联的任何自定义数据,形式为
CustomData(参阅使用 CustomDataDeserializable)。Dictionary<string, object> - :该物品的创建日期。它是一个 EconomyDate 对象。
Created - :该物品的修改日期。它是一个 EconomyDate 对象。
Modified
此外,还可以使用以下辅助器方法:
GetAllPlayersInventoryItems
获取当前登录玩家的所有背包物品。返回玩家背包中定义的 。
GetInventoryResultstring itemID = "SWORD";InventoryItemDefinition definition = EconomyService.Instance.Configuration.GetInventoryItem(itemID);GetInventoryResult allThePlayersSwords = await definition.GetAllPlayersInventoryItemsAsync();
购买
虚拟购买
GetVirtualPurchases
从缓存的配置中检索所有虚拟购买。返回 对象列表。
VirtualPurchaseDefinitionList<VirtualPurchaseDefinition> definitions = EconomyService.Instance.Configuration.GetVirtualPurchases();
GetVirtualPurchase
从缓存的配置中检索一项虚拟购买。返回一个 对象。
VirtualPurchaseDefinitionstring purchaseId = "VIRTUAL_PURCHASE_ID"VirtualPurchaseDefinition definition = EconomyService.Instance.Configuration.GetVirtualPurchase(purchaseId);
VirtualPurchaseDefinition
VirtualPurchaseDefinitionVirtualPurchaseDefinition- :购买定义的 ID。
Id - :人类可读的名称。
Name - :在 Economy 后台中定义的物品类型(对于所有
Type对象,类型都是VirtualPurchaseDefinition)。VIRTUAL_PURCHASE - :与此购买定义关联的任何自定义数据,形式为
CustomData(参阅使用 CustomDataDeserializable)。Dictionary<string, object> - :与此购买定义关联的任何自定义数据,形式为
CustomDataDeserializable(参阅使用 CustomDataDeserializable)。IDeserializable - :此购买定义的创建日期。它是一个 EconomyDate 对象。
Created - :此购买定义的修改日期。它是一个 EconomyDate 对象。
Modified - :与此购买相关的成本列表,形式为
Costs。PurchaseItemQuantity - :与此购买相关的所得内容列表,形式为
Rewards。PurchaseItemQuantity
真实货币购买
GetRealMoneyPurchases
从缓存的配置中检索所有真实货币购买。返回 对象列表。
RealMoneyPurchaseDefinitionList<RealMoneyPurchaseDefinition> definitions = EconomyService.Instance.Configuration.GetRealMoneyPurchases();
GetRealMoneyPurchase
从缓存的配置中检索一项真实货币购买。返回一个 对象。
RealMoneyPurchaseDefinitionstring purchaseId = "REAL_MONEY_PURCHASE_ID"RealMoneyPurchaseDefinition definition = EconomyService.Instance.Configuration.GetRealMoneyPurchase(purchaseId);
RealMoneyPurchaseDefinition
RealMoneyPurchaseDefinitionRealMoneyPurchaseDefinition- :购买定义的 ID。
Id - :人类可读的名称。
Name - :在 Economy 后台中定义的物品类型(对于所有
Type对象,类型都是RealMoneyPurchaseDefinition)。MONEY_PURCHASE - :与此购买定义关联的任何自定义数据,形式为
CustomData(参阅使用 CustomDataDeserializable)。Dictionary<string, object> - :此购买定义的创建日期。它是一个 EconomyDate 对象。
Created - :此购买定义的修改日期。它是一个 EconomyDate 对象。
Modified - :此次购买的商店标识符。它是一个 StoreIdentifiers 对象。
StoreIdentifiers - :与此购买相关的所得内容列表,形式为
Rewards。PurchaseItemQuantity
StoreIdentifiers
StoreIdentifersPurchaseItemQuantity
PurchaseItemQuantity- :指向此数量所表示的物品定义的
Item。EconomyReference - :所表示的物品的数量(整数)。
Amount
EconomyReference
EconomyReference- ,用于获取关联物品。
GetReferencedConfigurationItem()
以这种方式获取引用物品是同步发生的,因为它不需要额外的网络请求,并且获取的引用物品与检索购买信息时相同(在获取购买信息和访问引用之间的时间,对定义实施的任何更改都不会反映在引用物品中)。
使用 CustomDataDeserializable
自定义数据需在 Unity Dashboard(Unity 后台)中设置。选择一项货币、背包物品或购买,导航到自定义数据,然后添加 JSON 格式的数据。
自定义数据存储在所获取配置物品的 中。其类型为 。这样,即可将物品的自定义数据反序列化到您自己的自定义类中。
CustomDataDeserializableIDeserializable例如,如果游戏具有颜色稀有度系统,则在后台中物品可能具有以下 JSON 代码:
{ "rarity": "purple"}
您可以通过以下方式反序列化实例数据:
class MyCustomData{ public string Rarity}MyCustomData fetchedCustomData = fetchedConfigItem.CustomDataDeserializable.GetAs<MyCustomData>();string rarity = fetchedCustomData.Rarity;