文档

​
​

Development

User Acquisition

Monetization

工业

Economy

Economy

LiveOps
​
​
Economy
  • Overview
  • Get started
  • Concepts
  • Tutorials
    • Write configuration
    • Add a currency to your game
    • Add an inventory item to your game
    • Add a virtual purchase to your game
    • Add a real money purchase to your game
    • Publication
    • Player data
    • Economy Game Overrides
    • Economy Game Overrides with Cloud Code
    • Config Caching
  • Reference
  • Privacy and consent
  1. Economy

配置缓存

Understand how Economy caches configurations to ensure consistency across player devices.
阅读时间4 分钟
最后更新于 8 个月前

Remote Config 和 Game Overrides 利用配置分配哈希来缓存玩家配置。Economy 服务将配置分配哈希缓存数小时,以避免不必要的网络调用。

配置分配哈希

配置分配哈希代表什么?

ConfigAssignmentHash 是 Remote Config、Game Overrides 和 Economy 项目配置中玩家数据快照的唯一标识符。
具体对于 Economy 来说,快照仅针对 Economy 项目配置(物品定义、货币定义等),而不针对玩家的余额或背包。

使用 Cloud Code 和 Economy SDK 配置缓存

请参阅 Game Overrides - Cloud code 和 Game Overrides - Economy,详细了解如何通过 Economy Cloud Code SDK 和 C# SDK 使用配置分配哈希缓存。

访问配置分配哈希

在某些时候,您可能想要检索玩家当前的配置分配哈希,以便将其与其他 Unity 服务一起使用。您可以从配置命名空间获取该哈希值。

GetConfigAssignmentHash

以字符串形式检索玩家的当前配置分配哈希。如果不存在则返回
null
。
EconomyService.Instance.Configuration.GetConfigAssignmentHash();

SyncConfigurationAsync

获取经过身份验证的玩家的最新配置,并在本地保存配置分配哈希以供以后进行 Economy API 调用。在进行其他 Economy 调用之前,最好先调用本方法,以确保使用正确的配置分配哈希。
EconomyService.Instance.Configuration.SyncConfigurationAsync();

陷阱

由于缓存配置分配哈希,Economy 的相关更改无法得到体现

当您对 Economy 项目配置或 Game Overrides 进行更改时,Cloud Code 执行和 Economy SDK 调用将继续使用其最近缓存的配置分配哈希。
您可以通过确保在进行任何 API 调用之前获取最新的配置分配哈希来规避此问题。
对于 Cloud Code,您可能需要将最新的配置分配哈希作为参数传递给脚本和脚本内的 API 调用。
您也可以在 Cloud Code 脚本开始时获取最新的配置分配哈希,并将其传递给脚本内的 API 调用。
const { CurrenciesApi, ConfigurationApi } = require("@unity-services/economy-2.4");module.exports = async ({ params, context, logger }) => { const currenciesApi = new CurrenciesApi({ accessToken: context.accessToken }); const configApi = new ConfigurationApi({ accessToken: context.accessToken }); const currencyId = "COIN"; try { // Retrieve the player config to get the configAssignmentHash. // This is needed to ensure the currency is synced var config = await configApi.getPlayerConfiguration({ playerId: context.playerId, projectId: context.projectId, }); const result = await currenciesApi.incrementPlayerCurrencyBalance({ currencyId, playerId: context.playerId, projectId: context.projectId, configAssignmentHash: config.data.metadata.configAssignmentHash, currencyModifyBalanceRequest: { amount: 10 }, }); return result.data; } catch (err) { logger.error("Failed to increment currency for player", { "error.message": err.message }); return; }};

异常

您可能会遇到
EconomyException
,提示您未找到配置分配哈希。
此异常的
Reason
为
EconomyExceptionReason.ConfigAssignmentHashInvalid
。
要解决这个问题,请使用一种
Configuration
方法(例如
GetCurrenciesAsync()
)再次获取 Economy 配置。这样,SDK 就会获得刷新后的配置分配哈希,这样您就可以正常调用了。

Copyright © 2026 Unity Technologies
法律信息隐私政策CookiesDocumentation Terms of Use请勿出售或分享我的个人信息您的隐私选择(Cookie 设置)

“Unity”、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属公司在美国和其他地方的商标或注册商标(此处查看更多信息)。其他名称或品牌是其各自所有者的商标。

为方便起见,一些页面是机器翻译的,可能包含不准确的内容。如有信息不一致的情况,以英文版本为准。

  • 在本页上
    • 配置分配哈希

      • 配置分配哈希代表什么?

      • 使用 Cloud Code 和 Economy SDK 配置缓存

      • 访问配置分配哈希

        • GetConfigAssignmentHash

        • SyncConfigurationAsync

      • 陷阱

        • 由于缓存配置分配哈希,Economy 的相关更改无法得到体现

      • 异常


报告此页面的问题