重要
Economy v2 现已正式发布。 有关支持和反馈,请转到 PlayFab 论坛。
创建者实体类型 & ID
除了通过游戏管理器或 API 在游戏级别创建目录项外,还可以代表玩家创建它们。 你需要游戏玩家帐户 ID(而不是 Master Player Account ID
,它是跨游戏的)。
{
"Item": {
"CreatorEntity": {
"Type": "title_player_account",
"Id": "74657374696E6731"
},
"Type": "catalogItem",
"Title": {
"NEUTRAL": "Fire Sword!"
},
"Description": {
"NEUTRAL": "Fire Sword! (It's really cool)"
},
"ContentType": "Game Item",
"AlternateIds": [
{
"Type": "FriendlyId",
"Value": "fire_sword"
}
]
},
"Publish": false
}
Keywords
关键字是旨在用户可搜索的本地化字符串列表。 它们对于在游戏内商店中搜索相关项的用户非常有用。
- 关键字按本地化键进行索引。
- 关键字对于任何项都是可选的。
- 项可以包含任意数量的列出关键字。
- 示例:
{
"NEUTRAL": { "Values": ["fire", "weapon"] },
"de-DE": { "Values": ["feuer", "klingenwaffen"] },
"en-US": { "Values": ["fire", "weapon"] },
"fr-FR": { "Values":["enflammé","arme"] }
}
描述
说明字段是用于在每个项上显示的本地化字符串的列表。
- 本地化键用作索引。
- 说明对于任何项都是可选的。
- 示例:
{
"NEUTRAL": "Fire Sword! (It's really cool)",
"de-DE": "Feuer Schwert! (Es ist wirklich cool)",
"en-US": "Fire Sword! (It's really cool)",
"fr-FR": "Épée de feu! (C'est vraiment cool)"
}
内容类型
配置自定义内容类型,以在 ⚙️ > 游戏设置 > 经济型 (V2) > 目录 (V2) 中组织项目。
- 内容类型在搜索时作为高性能筛选器存在,并使对项目进行分组更轻松。
- 虽然内容类型可以是任何字符串,但每个项只能有一个字符串。
- 内容类型的一些示例包括:
weapon
armor
gem
pet
lootbox
appstorebundle
playerattribute
备用 ID
使用备用 ID 可以更轻松地处理代码中的目录 v2 项或第三方 API。 某些备用 ID,包括友好 ID 或商城 ID。
好友 ID
友好 ID 是项的“计算机名称”-使代码中更易于引用的名称。 友好 ID 对于所有项都是可选的,并且在目录中必须是唯一的。
{
"Item": {
"Type": "catalogItem",
"Title": {
"NEUTRAL": "Fire Sword!"
},
"Description": {
"NEUTRAL": "Fire Sword! (It's really cool)"
},
"ContentType": "Game Item",
"AlternateIds": [
{
"Type": "FriendlyId",
"Value": "fire_sword"
}
]
},
"Publish": false
}
市场 ID
备用 ID 是各种市场如何识别你的产品。 由于每个市场都有自己的一组限制和策略,因此需要根据每个平台的应用商店项配置方式进行设置。
PlayFab 附带多个市场。 若要使用正确的市场加载项,市场必须采用以下值:
- Apple = “AppleAppStore”
- Google Play = “GooglePlay”
- 任天堂 = “NintendoEShop”
- Microsoft = “MicrosoftStore”
- PlayStation = “PlayStationStore”
- Steam = “Steam”
下面是有关如何为每个平台配置备用 ID 的一些示例:
- Apple App Store:
product_id
,示例com.companyname.productname
- Google Play:
productId
,示例com.companyname.productname
- Microsoft Store:
productId
,示例9NBLGGH42CFD
- Nintendo E-Shop:
item_id
,示例nintendo700100
- PlayStation 存储:
id
%1,示例PLAYFAB00000CUSA
- Steam:
itemdefid
,示例100
{
"Item": {
"Type": "catalogItem",
"Title": {
"NEUTRAL": "Fire Sword!"
},
"Description": {
"NEUTRAL": "Fire Sword! (It's really cool)"
},
"ContentType": "Game Item",
"AlternateIds": [
{
"Type": "FriendlyId",
"Value": "fire_sword"
},
{
"Type": "MicrosoftStore",
"Value": "9NBLGGH42CFD"
},
{
"Type": "AppleAppStore",
"Value": "com.companyname.productname"
},
{
"Type": "GooglePlay",
"Value": "com.companyname.productname"
},
{
"Type": "NintendoEShop",
"Value": "nintendo700100"
},
{
"Type": "PlayStationStore",
"Value": "PLAYFAB00000CUSA"
},
{
"Type": "Steam",
"Value": "100"
}
]
},
"Publish": false
}
平台
会在“平台”下的 v2 目录设置中添加和配置自定义平台。 可以将平台用作深层链接或其他自定义属性的配置数据。
标记
可以通过提供有效字符串列表来设置标记列表。
Tags
对于任何项都是可选的,并且项可以包含任意数量的列出标记。
- 项可以有标记
- 对一致的文本元数据使用标记并将其应用于多个项,例如损坏类型。
- 标记作为搜索筛选器存在。
- 每个项可以有多个标记。
- 标记在目录项、UGC 项、文件和图像之间独立组织。
- 标记的一些示例 如下:
firedamage
icedamage
bluntdamage
slashingdamage
piercingdamage
lightarmor
heavyarmor
DisplayProperties
显示属性是可添加到目录中所有项目的自定义项目属性。 可以在 显示属性映射 节中设置某些属性,以便在使用 SearchItems API 时使用搜索、筛选器和排序。
- 项可以具有具有已配置字段类型的 Display 属性
- 使用不同项(如 lore 文本)的元数据的显示属性
- 显示属性可查询(索引、快速查询)或可搜索(较慢的文本查询)
- 最多可以配置每种类型的字段中的五个要编制索引
- 示例:
{
"game-model": "//models/weapon/fire_sword.fbx",
"durability-default": "9001"
}
将字段添加到 DisplayProperties
时,它会在数据库中为你创建一个新索引。 仅包含创建索引后添加或更新的文档。 如果 Display 属性应应用于所有项,则需要重新发布整个目录。
DateTime
、 Double
和 Queryable String
显示属性 可查询,这些属性可用于 Filter 和 OrderBy 语句。
Searchable String
显示属性 可搜索;这些属性是使用模糊搜索针对 Search
字段查询的。 无法在 Filter 和 OrderBy 语句中使用可搜索属性
游戏限制为每种类型的五个显示属性。 有关详细信息,请参阅 限制。
警告
显示属性映射存储为键值对的索引列表。 删除现有显示属性映射可能会移动索引并破坏所有剩余属性的行为。 建议添加其他属性,而不是删除或编辑现有属性,除非绝对必要,否则应避免删除属性映射
价格
通过价格,可以将游戏内货币成本分配给物品。 它们是可选的,但允许玩家使用 PurchaseItem API 用游戏内货币购买项目。
- 可以为每个物品设置多个价格。
- 可以使用任何现有货币设置价格。
- 示例:
"PriceOptions": {
"Prices": [
{
"Amounts": [
{
"Id": "{{CurrencyID}}",
"Amount": 15
}
]
}
]
}
文件和图像
这些字段使用文件存储而不是配置存储。 文件存储适用于经常更新或修改的游戏资产,例如图标或资产游戏引擎元数据。 有关 PlayFab 处理的文件类型的详细信息,请参阅“限制”。