# UGS 发行说明

> Learn about releases, features, fixes, and changes across all Unity Gaming Services SDKs and packages.

#### 如何访问最新的资源包功能##how-to-access-the-latest-package-features

请按照[安装说明](./getting-started.md#install-ugs-packages)升级您的资源包。如果您在编辑器中没有看到资源包的最新版本，请确保更新到最新的 [LTS 或 Tech Stream 版本](https://unity.com/releases/release-overview)。

一些新功能是预发布的功能；这些功能通过 `pre` 标签来识别。了解有关使用[预发布包](https://docs.unity3d.com/Manual/pack-preview.html)的更多信息。

## 2024 年 11 月##august-2025

### [Authentication SDK 3.4.0](/authentication.md)

#### 新增##changed

* 添加了 `PlayerAuthentication` 组件来管理场景创作中的身份验证。

#### 更改##fixed

* 将支持的最低编辑器版本更新至 2021.3。

### [Cloud Save SDK 3.2.1](/cloud-save.md)

#### 更改##added

* 将支持的最低编辑器版本更新至 2021.3。
* 更新了 Apple 隐私清单。

### [Core SDK 1.14.0](/services.md)

#### 新增##fixed

* 添加了 `ServicesInitialization` monobehaviour 来管理场景创作中的服务。
* 添加了 `ServicesBehaviour` 抽象 monobehaviour 作为在服务之上构建行为的基础。
* 添加了唯一标识符以用于自定义服务注册表创建 (`UnityServices.CreateServices`)。
* 在 `UnityServices.Services` 中添加了自定义服务注册表字典。
* 向 `IUnityServices` 接口添加了 `GetIdentifier()` 方法并采用默认实现。

#### 更改##changed

* 将支持的最低编辑器版本更新至 2021.3。

### [Economy SDK 3.5.0](/economy.md)

#### 新增##changed

* 用于 Economy 资源文件的 View in Deployment Window（在部署窗口中查看）按钮，依赖于 Deployment 包版本 1.4.0。
* 在 REST API 请求的标头中添加了 unity-installation-id，以便返回被覆盖的经济内容。
* 在 REST API 请求的标头中添加了 analytics-user-id，以便在需要时将其设置为 ExternalUserId。

#### 修复##fixed

* 修复了 Economy 部署资源帮助 URL。
* 修复了抛出异常时的冗余日志记录。
* 当部署窗口不可用时引发日志错误。
* 在包文档中添加了缺失的目录。

### [Leaderboards SDK 2.2.0](/leaderboards/tutorials/unity-sdk/add-new-score.md)

#### 新增##added

* 用于 `.lb` 文件的 View in Deployment Window（在部署窗口中查看）按钮，依赖于 Deployment 包版本 1.4.0。

#### 更改##fixed

* 更新了 Apple 隐私清单以涵盖游戏数据的使用。

#### 修复##added

* 修复了从 Leaderboard 资源到相关文档的帮助 URL。

### [Multiplayer Play Mode SDK 1.3.2](https://docs.unity3d.com/Packages/com.unity.multiplayer.playmode@1.3/manual/index.html)

#### 新增##changed

* 如果运行模式与编辑模式下的布局相同，避免通过运行模式重建虚拟玩家窗口。这有助于在 Windows 中保留锚定。

#### 修复##changed

* 修复了当克隆正在激活状态下运行模式场景停止时克隆仍保持活动状态的问题。
* 修复了在克隆编辑器的布局配置中启用 Playmode Tools（运行模式工具）时可能会显示错误布局的问题。
* 修复了当 Dedicated Server 包版本不匹配时的编译错误“‘UnityPlayer’不包含‘Role’的定义”。

### [Push Notifications SDK 4.0.1](/push-notifications.md)

#### 更改##added

* 修复了在某些情况下 `registerForPushNotificationsAsync` 方法在 Android 设备情况下挂起的相关错误。

### [Vivox SDK 16.5.3](/vivox-unity.md)

#### 新增##changed

* WebGL 支持定向消息。

#### 修复##fixed

* 现在会在登录时设置 WebGL Presence。
* 移除了已弃用的 Google Analytics 平台的所有导入和使用实例。此服务从未激活过并且在纳入该服务期间也没有收集过任何数据。

### [Tooling SDK 1.2.0](https://docs.unity3d.com/Packages/com.unity.services.tooling@1.2/manual/index.html)

#### 新增##added

* 用于 `.ac` 资源文件的 View in Deployment Window（在部署窗口中查看）按钮，依赖于 Deployment 包版本 1.4.0。
* 访问控制资源中的帮助 URL 链接。

## 2024 年 10 月##july-2025

### [Analytics SDK 6.0.2](https://docs.unity3d.com/Packages/com.unity.services.analytics@6.0/index.html)

* \*\*修复：\*\*2022 及更高编辑器版本的 Package Manager（包管理器）中的 \*\*Go To Dashboard（转到后台）\*\*链接现在会定向至正确的登陆页面，而不是不相关的错误页面。
* \*\*修复：\*\*添加了公共 API 元素缺少的 XmlDoc 注释。
* \*\*修复：\*\*如果第一次启用 SDK 之前设置的 `ExternalUserId` 与上次看到的用户 ID 不同，现在可以正确记录 `newPlayer` 事件。
* \*\*修复：\*\*在已启用数据收集时更改 `ExternalUserId` 现在可以正确启动新会话并记录启动事件。
* \*\*修复：\*\*在已禁用数据收集时更改 `ExternalUserId` 现在可以在（重新）启用数据收集时正确记录启动事件。

### [Deployment SDK 1.4.0](https://docs.unity3d.com/Packages/com.unity.services.deployment@1.4/manual/index.html)

* \*\*新增：\*\*向 Deployment API DeploymentWindow 添加了实现。

* \*\*新增：\*\*能够直接从 Deployment details（部署详细信息）面板复制文本。

* **新增：**`.ddef` 文件中的 View in Deployment Window（在部署窗口中查看）按钮。

* \*\*修复：\*\*状态面板的初始尺寸过大的问题。

* \*\*修复：\*\*部署定义的 `ExcludePaths` 不支持相对路径的问题。

* \*\*修复：\*\*切换选项卡时在项的 `status` 字段中显示占位符文本的问题。

* \*\*修复：\*\*切换选项卡时进度条可能消失的问题。

* \*\*修复：\*\*在窗口实例之间无法保留拖拽线位置 + 面板大小 GUI 状态并导致在打开窗口时出现错误状态的问题。

### [Deployment API SDK 1.1.2](https://docs.unity3d.com/Packages/com.unity.services.deployment.api@1.1/manual/index.html)

* \*\*新增：\*\*DeploymentWindow API，允许轻松与 Deployment（部署）窗口及其操作进行交互。支持的资源包中的新 UI 将利用此 API。

* **修复：** `SetStatusSeverity` 消息和详细信息互换问题。

* \*\*修复：\*\*公开了 Deployment（部署）窗口的主要操作。

* \*\*修复：\*\*添加了用于 CLI 互操作性的辅助接口和类。

### [Cloud Code](/cloud-code.md)

* **新增：**`.ccmr` 和 `.js` 文件中的 View in Deployment Window（在部署窗口中查看）按钮，依赖于 Deployment 包版本 1.4.0。

* **新增：**`.ccmr` 和 `.js` 文件检视面板中的 View in Dashboard（在后台查看）按钮。

* \*\*新增：\*\*Deployment（部署）窗口中用于 `.ccmr` 和 `.js` 文件的 View in Dashboard（在后台查看）上下文菜单。

* \*\*新增：\*\*向 `.ccmr` 检视面板添加了 `Open Solution` 按钮。

* \*\*新增：\*\*支持 Cloud Code 绑定生成功能的枚举。

* \*\*修复：\*\*在 Cloud Code 模块绑定生成功能中支持的各种原始类型。

* \*\*修复：\*\*在 Unity 6 中，脚本内参数分析会抛出异常。

* **修复：**`.ccmr` 检视面板中的 \*\*Browse...（浏览...）\*\*按钮现在可以正确打开当前解决方案文件夹。

* \*\*修复：\*\*Cloud Code 原始类型的绑定生成问题。

* \*\*修复：\*\*绑定生成功能会尝试在最新可用的运行时环境中运行。可以使用 CLOUD\_CODE\_AUTHORING\_DISABLE\_VERSION\_DETECT 标志来禁用此功能。

* \*\*修复：\*\*与 Deployment 1.3 兼容。

## 2024 年 9 月##june-2025

### [Cloud Code](/cloud-code.md)

* **新增**：
  * Cloud Code C# 模块对 .NET 7、8 和 9 的支持。
  * 在 [Unity Dashboard](https://dashboard.unity.com/) 中添加了 Cloud Code C# 模块的 Details（详细信息）页面。请参阅 [Unity Dashboard 中的模块](/cloud-code/modules/how-to-guides/write-modules/unity-dashboard.md)以了解更多信息。
  * [Unity Dashboard](https://dashboard.unity.com/) 中的[触发器](/triggers.md)支持。请参阅[在 Unity Dashboard 中定义触发器](/triggers/tutorials/define-triggers/unity-dashboard.md)以了解更多信息。
  * 添加了[视频演示](/triggers/getting-started.md)以说明如何开始使用 Cloud Code 和触发器。

### [Vivox (Voice and Text Chat)](/vivox-unity.md)

* \*\*发布：\*\*Vivox Unity 包 16.5.0 版。
  * 此版本增加了对 Vivox WebGL 的有限支持。
* **更改：**
  * 将 IVivoxTokenProvider 验证步骤从 Vivox SDK 初始化移至登录操作。
* **修复：**
  * 通过仅在所有字段都完全编辑后才注册 Audio Tap，而不是在每个字符输入时都进行注册，改善了与 Audio Tap Inspector 交互的整体体验。
  * 修复了输入意外值时 Audio Tap 的“Channel Name”字段将重置为空的错误。
* \*\*发布：\*\*所有 Vivox SDK 的 v5.25。
  * 请参阅各自的发行说明页面以了解所有更改：
    * [Vivox Core SDK](https://docs.vivox.com/v5/general/core/5_25_0/en-us/Default.htm#Core/core-release-notes.htm)
    * [Vivox Unreal SDK](https://docs.vivox.com/v5/general/unreal/5_25_0/en-us/Default.htm#Unreal/unreal-release-notes.htm)

### [Service APIs SDK 1.1.0](https://docs.unity3d.com/Packages/com.unity.services.apis@1.0/manual/index.html)

* \*\*更改：\*\*Multiplay Admin API 不再位于“ENABLE\_SERVICES\_EXPERIMENTAL\_APIS”定义符号下。但是，API 客户端默认不包括这些 API。要调用 Multiplay Admin API 操作，请将 `EXPERIMENTAL` 指令添加到您的运行设置中。
* \*\*更改：\*\*MatchmakerTicketsAPI 不再位于“ENABLE\_SERVICES\_EXPERIMENTAL\_APIS”定义符号下。但是，API 客户端默认不包括此 API。要调用 MatchmakerTicketsAPI 操作，请将 `EXPERIMENTAL` 指令添加到您的运行设置中。
* \*\*更改：\*\*IServerClient.SignInFromServer 不再位于“ENABLE\_SERVICES\_EXPERIMENTAL\_APIS”定义符号下。
* \*\*更改：\*\*ProxyApi 不再位于“ENABLE\_SERVICES\_EXPERIMENTAL\_APIS”定义符号下（SignInFromServer 依赖于此 API）。
* \*\*更改：\*\*Game.Friends API 不再位于“ENABLE\_SERVICES\_EXPERIMENTAL\_APIS”定义符号下。

### [Multiplayer 服务 1.0.0](/mps-sdk.md)

* **修复：**
  * 修复了会话属性构造函数的默认值。
  * 修复了 `SessionHandler` 在更新属性时丢失属性索引的问题。
  * 修复了当玩家轮询会话更新并被踢出会话时出现的会话清理问题。
  * 修复了删除不存在的会话时出现的会话错误。
  * 修复了端口随机化与网络游戏对象的兼容性。
  * 修复了偶尔无法在 P2P 对战中获取配对结果的问题。
  * 修复了配对结果 204 异常。
  * 修复了与 `ENABLE_UCS_SERVER` 脚本定义相关的错误，允许在运行模式下使用非服务器构建配置文件执行有限的服务器功能。
  * 修复了在 Game Server Hosting 中启动 SQP 服务器时出现的 `TaskCanceledException`。
  * 修复了未更改属性时 `SavePropertiesAsync` 不会保存会话字段的问题。
  * 修复了 `SessionError` 的拼写错误。
  * Matchmaker 部署窗口：
    * 修复了当远程队列具有已过滤的池时的部署队列问题。
    * 修复了当远程队列没有池时的部署队列问题。
    * `backfillEnabled` 不再被忽略。
    * `defaultQoSRegionName` 现在被记录为必填项。
    * `defaultQoSRegionName` 现在是有效区域 `North America`。
    * 队列和环境配置文件现在都有 `$schema` 文档字段。
* **更改：**
  * 将 QoS Calculator 改为内部使用。
  * 修改了 Game Server Hosting 配置架构：
    * 在“buildConfigurations”中将服务器硬件设置标记为已弃用。
  * 更新了分布式授权会话属性。
  * 将会话的连接元数据可见性设置为 `Member`。
  * 优化了关于 ClientServerBootstrap 世界检查的异常消息。
* **新增：**
  * 添加了在创建分布式授权会话过程中未传递任何区域情况下的 QoS 区域选择功能。
  * 添加了一个 API 来查询玩家已加入的会话：`IMultiplayerService.GetJoinedSessionIdsAsync`。
  * 添加了一种重新连接会话的方法：`IMultiplayerService.ReconnectToSessionAsync`。
  * 在 Game Server Hosting 构建中添加了支持基本模式（\*、?）的排除路径。
  * 修改了 Game Server Hosting 配置架构：
    * 在“fleets”中添加了服务器密度设置（“usageSettings”）。
  * 添加了访问 `IMultiplaySessionManager.Session` 时的验证功能。
* **改进：**
  * 更新了文档以将 Game Server Hosting 品牌替换为 Multiplay Hosting。
  * 修复了 Multiplay Hosting 文档中损坏的链接。
  * 将 `com.unity.services.wire` 依赖项更新至 1.2.7 以修复重新连接问题，尤其是与 Lobby 的重新连接问题。
  * 将 Netcode for GameObjects 最低要求版本从 2.0.0-pre.3 更改为 2.0.0。
  * 将 Netcode for Entities 最低要求版本从 1.3.0-pre.2 更改为 1.3.2。

## 2024 年 8 月##march-2025

### [Analytics SDK 6.0.1](https://docs.unity3d.com/Packages/com.unity.services.analytics@6.0/index.html)

* \*\*新增：\*\*新的 Analytics Debug Panel（调试面板），可在 Unity 编辑器中通过 Services（服务）> Analytics > Debug Panel（调试面板）访问此面板
* \*\*更改：\*\*UGS Analytics SDK 支持的最低编辑器版本现在是 2021.3
* \*\*移除：\*\*该 SDK 的早期版本中标记为 `Obsolete` 的所有方法、类和结构都已被移除（如果您在升级时遇到问题，请先升级到 5.1.0，在此版本中修复弃用警告，然后升级到 6.0.0）

### [Vivox Safe Voice](/vivox.md)

* \*\*发布：\*\*Safe Voice 自助服务流程已作为 Vivox 统一安全平台的一部分发布。

### [Vivox Safe Text](/safe-text.md)

* \*\*发布：\*\*Safe Text 自助服务流程已作为 Vivox 统一安全平台的一部分发布。

### [Service APIs SDK 1.0.1](https://docs.unity3d.com/Packages/com.unity.services.apis@1.0/manual/index.html)

* \*\*新增：\*\*资源包从实验性状态变为正式发布状态

* \*\*更改：\*\*将多个服务的功能移至 ENABLE\_SERVICES\_EXPERIMENTAL\_APIS 定义符号下

* \*\*修复：\*\*Observability GetLogs 函数中的反序列化错误

### [Multiplay Hosting SDK 1.2.5](https://www.rocketscience.gg/multiplay/)

* \*\*新增：\*\*与 Admin API 交互的 API

* \*\*新增：\*\*与部署功能交互的 API

* \*\*更改：\*\*上传功能在部分取得成功的情况下变得更可靠

* \*\*修复：\*\*gsh deploy upload 命令在某些情况下可能失败的问题。系统不会重试不完整的上传，并且将无法创建后续构建版本

* \*\*修复：\*\*上传命令的问题。该命令在没有要上传的内容时不会等待同步。

## 2024 年 7 月##february-2025

### [CLI 1.6.0](/services/ugs-cli-introduction.md)

* **新增：**\[Game Server Hosting] 添加了对使用 Google Cloud Storage (GCS) 作为构建和构建配置来源的支持。

* **更改：**\[Game Server Hosting] 将 `gsh build configuration` 的 CREATE 和 UPDATE 命令中的选项 `--speed`、`--cores` 和 `--memory` 标记为已弃用以便支持向后兼容。

* \*\*更改：\*\*应使用[服务器密度配置](https://www.rocketscience.gg/multiplay/)在机群上设置新的使用量。

* **修复：**\[Remote Config] 修复了空环境的导入和导出问题。

* **修复：**\[Cloud Content Delivery] 现在会规范化路径以始终使用正斜杠，即使在 Windows 平台上也是如此。

### [Multiplayer SDK 1.0.0-pre.1](https://docs.unity3d.com/Packages/com.unity.services.multiplayer@1.0/manual/index.html)

* \*\*新增：\*\*添加了对会话发布的端口进行更新的功能 (NetworkConfiguration.UpdatePublishPort) 以在网络处理程序中启用自动端口选择。

* \*\*新增：\*\*用于 Multiplay Hosting 和 Matchmaker Config as Code 资源文件的 View in Deployment Window（在部署窗口中查看）按钮，依赖于 Deployment 包版本 1.4.0。

* \*\*更改：\*\*更新直接网络选项默认值：listenIp 和 publishIp 默认为 127.0.0.1，端口默认为零。

* \*\*更改：\*\*将会话中的 Netcode for Entities 网络支持版本更新至 1.3.0-pre.2。

* \*\*更改：\*\*将会话中的 Netcode for GameObjects v2 网络支持版本更新至 2.0.0-pre.1（分布式授权中的要求）。

* \*\*修复：\*\*修复了 gsh deploy upload 命令在某些情况下可能失败的问题。

### [Matchmaker SDK 1.1.5](/matchmaker/.md)

* \*\*修复：\*\*修复了非默认环境下的 ABTesting 覆盖问题

## 2024 年 6 月##january-2025

### [In-App Purchasing SDK 4.12.1-pre.4](https://docs.unity3d.com/Packages/com.unity.purchasing@4.12/index.html)

* \*\*新增：\*\*Google Play - 添加了 `IGooglePlayStoreExtensions.GetObfuscatedAccountId(Product product)` 以获取使用 `IGooglePlayConfiguration.SetObfuscatedAccountId` 设置的购买模糊帐户 ID。

* \*\*新增：\*\*Google Play - 添加了 `IGooglePlayStoreExtensions.GetObfuscatedProfileId(Product product)` 以获取使用 `IGooglePlayConfiguration.SetObfuscatedProfileId` 设置的购买模糊配置文件 ID。

* \*\*新增：\*\*Apple - 添加了 visionOS 支持。

* \*\*更改：\*\*Google Play - Billing Library 更新到 6.2.1（先前为 5.2.1）。没有添加新功能支持。订阅仍必须只有 1 个基础计划。

* \*\*更改：\*\*Google Play - 依赖项现已注入到 Gradle 文件中。不再包括 Billing aar。

* \*\*更改：\*\*Google Play - 更新了内部实现以使用 `productDetails` 而不是 `skuDetails`，从而解决 Google 发出的 `setOfferToken` 警告。

* \*\*更改：\*\*Google Play - 更新了 `IGooglePlayStoreExtensions.GetPurchaseState(Product product)` 以使用 [getPurchaseState() 而不是 getOriginalJson()](https://developer.android.com/google/play/billing/integrate#pending)。此更改将使购买状态更加可靠。

* \*\*更改：\*\*Google Play - `IGooglePlayStoreExtensions.ConfirmSubscriptionPriceChange` 已被标记为 `[Obsolete]`，因为它自 Google Play Billing Library 6.0.0 以来不再受支持。如需了解替代方案，请参阅[价格变更指南](https://developer.android.com/google/play/billing/price-changes)。

* \*\*更改：\*\*Google Play - 当获取产品成功但发生错误且未返回任何产品时，`InitializationFailureReason.PurchasingUnavailable` 的 `IStoreListener.OnInitializeFailed` 现在将返回 BillingResponseCode。

* \*\*更改：\*\*Apple - 从商店获取的购买将被视为 `appleProductIsRestored`。

* \*\*更改：\*\*Apple - 由于 `Product.appleProductIsRestored` 已经被处理，因此将不再发送给 `ProcessPurchase`。

* \*\*更改：\*\*Apple - 上述更改将通过避免重复购买事件来改善 Analytics 数据。

* \*\*更改：\*\*将 `com.unity.services.core` 从 1.8.2 升级到 1.12.5 以包含其 Apple 隐私清单。

* \*\*修复：\*\*修复了 `OnPurchaseFailed` - 当无法购买产品时，它现在会在 `PurchaseFailureDescription` 中返回 `productId`（以前为 `transactionId`）。

* \*\*修复：\*\*修复了在 Unity 引擎 2020 上获取产品时出现的 NullReferenceException。

* \*\*修复：\*\*Google Play - 修复了 Unity 引擎 2021.1 上与 `CloneReference` 相关的错误。

* \*\*修复：\*\*Google Play - 修复了在解析依赖项后添加依赖项导致出现错误的问题。

* \*\*修复：\*\*Google Play - 修复了 `Product.receipt` 的 `price_amount_micros` 返回价格而不是微单位价格的问题。

* \*\*修复：\*\*Google Play - 修复了在 Unity 引擎 2021.2 及更低版本中获取产品时出现的 `NullReferenceException`。

* \*\*修复：\*\*Google Play - 修复了因 ProductID 无效而无法触发 `OnProductReceived` 回调的问题。

* \*\*修复：\*\*Google Play - 修复了在 Windows 上禁用 IAP 依赖项时出现的问题。

* \*\*修复：\*\*Google Play - 修复了获取购买时可能发生的 `InvalidOperationException`。（从 Unity IAP 4.6.0 开始）

* \*\*移除：\*\*Google Play - `Product.receipt` > `"Payload"` > `"skuDetails"` 的 `iconUrl` 和 `skuDetailsToken` 子入口现在将返回一个空字符串，因为它们不再受支持。

* \*\*移除：\*\*移除了不必要的 Android 依赖项 `androidx.activity:activity-compose:1.3.1`，因为它可能会导致与其他插件发生冲突。

### [Core SDK 1.13.0](/services.md)

* \*\*新增：\*\*向 UnityServices 添加了初始化成功和失败事件。

### [CLI 1.5.0](/services/ugs-cli-introduction.md)

* \*\*新增：\*\*Cloud Save 模块服务命令。运行 ugs cloud-save -h 可现实用法。

* \*\*新增：\*\*添加了对 Matchmaker 的支持以进行部署和获取操作。

* \*\*修复：\*\*现在支持 --services 和 --key 选项的多个条目。

* \*\*修复：\*\*Cloud Content Delivery 大文件内容上传失败或超时问题。

### [Cloud Code SDK 2.7.1](/cloud-code.md)

* \*\*新增：\*\*向可用的订阅事件回调中添加了 MessageBytesReceived 回调

* \*\*新增：\*\*向核心服务注册表中添加了服务注册

* \*\*新增：\*\*通过核心服务注册表访问服务 (UnityServices.Instance.GetCloudCodeService())

* \*\*新增：\*\*添加了一个按钮以用于在选择 Cloud Code 模块路径时浏览文件

* \*\*更改：\*\*通过事件订阅来接收字节时将不再触发 MessageReceived 回调

* \*\*修复：\*\*使用 ILogger 依赖项注入时会中断绑定生成

* \*\*修复：\*\*Cloud Code 模块现在会在部署或生成绑定后清理编译 Artifact

* \*\*修复：\*\*Cloud Code 运行时超时增加至 30 秒

* \*\*修复：\*\*将创建 Cloud Code 资源菜单项移至“Services（服务）”下

### [Tooling SDK 1.1.0](/services/access-control.md#deploying-with-the-editor)

* \*\*修复：\*\*关于 `Unity.Services.Tooling.Editor` 程序集为空的警告
* \*\*修复：\*\*将创建访问控制配置菜单项移至“Services（服务）”下

## 2024 年 5 月##december-2024

### [Analytics 后台](/analytics.md)

* \*\*更改：\*\*改善了后台中的饼图的渲染性能
* \*\*更改：\*\*Event Manager（事件管理器）现在会显示过去 24 小时内收到的有效和无效事件的总数

## 2024 年 4 月##november-2024

### [Vivox (Voice and Text Chat)](/vivox-unity.md)

* \*\*发布：\*\*Vivox Unity 包 16.3.0 版。
  * 此版本向我们的 Apple 平台添加了新的必需的 PrivacyInfo.xcprivacy 文件。
* \*\*发布：\*\*所有 Vivox SDK 的 v5.23.1。
  * 此版本向我们的 Apple 平台添加了新的必需的 PrivacyInfo.xcprivacy 文件。

### [Economy SDK 3.4.0](/economy.md)

* \*\*新增：\*\*对服务实例和全局访问点的支持。

* \*\*新增：\*\*添加了 Apple 隐私清单以符合 Apple 新的隐私要求。在此处可以找到关于 Unity 引擎在这方面的支持情况的更多详细信息。

* \*\*更改：\*\*将 com.unity.services.core 从 1.12.0 升级到 1.12.5 以包含其 Apple 隐私清单。

* \*\*更改：\*\*将 com.unity.services.authentication 从 3.1.0 升级到 3.3.1 以包含其 Apple 隐私清单。

### [User Generated Content SDK 3.0.1](/services.md)

* \*\*新增：\*\*添加了 Apple 隐私清单以符合 Apple 新的隐私要求。在此处可以找到关于 Unity 引擎在这方面的支持情况的更多详细信息。

* \*\*更改：\*\*将 com.unity.services.core 从 1.9.0 升级到 1.12.5 以包含其 Apple 隐私清单。

* \*\*更改：\*\*将 com.unity.services.authentication 从 2.5.0 升级到 3.3.1 以包含其 Apple 隐私清单。

### [Core SDK 1.12.5](/services.md)

* \*\*新增：\*\*Apple 隐私清单文件 (PrivacyInfo.xcprivacy)。

* \*\*修复：\*\*可选 `FEATURE_SERVICES_INSTANCES` 预处理器定义的问题。

### [Tooling SDK 1.0.0](/services/access-control.md#deploying-with-the-editor)

* \*\*新增：\*\*访问控制的部署实施。
* \*\*新增：\*\*用于创建访问控制配置的新建文件上下文菜单项。
* \*\*新增：\*\*访问控制配置资源检视面板。
* \*\*新增：\*\*访问控制部署文档。

### [CLI 1.4.0](/services/ugs-cli-introduction.md)

* \*\*修复：\*\*改进了 Cloud Code 脚本内参数的错误参数类型解析错误。

* \*\*修复：\*\*Cloud Content Delivery 模块服务命令。运行 `ugs ccd -h` 可显示用法。

* \*\*更改：\*\*env list 命令现在以表格形式输出。

### [Authentication SDK 3.3.1](/authentication.md)

* \*\*新增：\*\*支持在使用 Multiplayer Play Mode 时运行不同的配置文件。

* \*\*新增：\*\*Apple 隐私清单。

* \*\*修复：\*\*当 `PlayerID`、`AccessToken` 或 `SessionToken` 的事件处理程序抛出异常时，`AuthenticationState` 保持无效状态。

* \*\*修复：\*\*如果设置不正确并且应用程序收到深层链接请求，则 Player Accounts SDK 中会出现 `NullReferenceException`。

## 2024 年 3 月##october-2024

### [Use Cases Samples 2.0.0](https://github.com/Unity-Technologies/com.unity.services.samples.use-cases)

* \*\*更改：\*\*用例现在与 Deployment 包兼容，并且可以使用 Deployment（部署）窗口部署大多数服务配置。

* \*\*更改：\*\*默认情况下将项目恢复为 2021.3，以便我们可以更轻松地与所有当前 LTS 版本兼容。

* \*\*更改：\*\*移除了 CCD 可寻址功能和 Over the Air Content 用例。Addressables 和 CCD 已在许多其他示例中进行演示。

* \*\*更改：\*\*移除了 Ads 功能和 Ads 用例。Ads 已在许多其他示例中进行演示。

* \*\*修复：\*\*战斗通行证 README 中的虚拟购买键名称不正确。正确的键名称为 BATTLE\_PASS\_PURCHASE。

* \*\*修复：\*\*战斗通行证 README 未列出 BATTLE\_PASS\_REWARDS\_FREE 和 BATTLE\_PASS\_REWARDS\_PREMIUM 键的完整游戏覆盖内容。该内容已添加到单独的 Game Overrides 文档文件中。

* \*\*修复：\*\*季节性活动 README 的 Cloud Code 脚本名称错误。两者都应以前缀 SeasonalEvents\_ 开头。

* \*\*修复：\*\*移除了阻止解析 Remote Config 的旧字段。

* \*\*修复：\*\*WebGL 与 Cloud Code 和虚拟商店的兼容性问题。

### [Analytics 后台](/analytics.md)

* **发布：**[Data Explorer（数据资源管理器）V2](/analytics/data-explorer/data-explorer-v2.md) 公测版。
  * 包括具有增强功能的全新和改进用户体验，例如自定义尺寸。

### [Vivox (Voice and Text Chat)](/vivox-unity.md)

* \*\*发布：\*\*Vivox Unity 包 16.2.0 版。
  * 此版本包含一个新的语音转文本 API 以及其他改进和错误修复。
  * 此版本引入了对 Windows ARM64 的支持。
* \*\*发布：\*\*所有 Vivox SDK 的 v5.23.0。
  * 此版本包含各种错误修复和改进。

### [In-App Purchasing SDK 4.11.0](https://docs.unity3d.com/Packages/com.unity.purchasing@4.11/manual/index.html)

* \*\*新增：\*\*添加了 `IGooglePlayConfiguration.SetMaxConnectionAttempts(int maxConnectionAttempts)` 以指定与 Google Play 应用商店的最大连接尝试次数。

* \*\*新增：\*\*添加了隐私清单以符合 Apple 新的隐私要求。如需详细了解 Unity 引擎在这方面的支持情况，请参阅[此处的论坛](https://forum.unity.com/threads/apple-privacy-manifest-updates-for-unity-engine.1529026/)。

* \*\*新增：\*\*添加了 `ConfigurationBuilder.logUnavailableProducts` 以指定是否应记录不可用的产品。

* \*\*更改：\*\*Google Play - 与 Google Play 应用商店的默认最大连接尝试次数从 1 增加到了 3。请参阅 `IGooglePlayConfiguration.SetMaxConnectionAttempts` 将其配置为其他值。

* \*\*更改：\*\*Apple - 获取产品时的日志 (SKProductsResponse) 现在还包含无效产品数量。

* \*\*更改：\*\*改进了 `InitializationFailureReason.NoProductsAvailable` 的 `IStoreListener.OnInitializeFailed`，通过添加一条消息来说明商店是否返回了产品。

* \*\*修复：\*\*Google Play - 修复了 AndroidJavaObject 未被处置而导致极端情况下全局引用表溢出的问题。

* \*\*修复：\*\*Google Play - 修复了导致 BillingClient 重复而引发 ANR 的错误。

* \*\*修复：\*\*Apple - 修复了 tvOS 上的 isFamilyShareable 以使其仅在受支持的版本（14.0 及更高版本）上可用。

* \*\*修复：\*\*Apple - 购买失败时的错误代码现在始终返回 Apple 的代码，而不是默认为 `SKErrorUnknown`。

* \*\*修复：\*\*Analytics 的 transactionServer 为 null。

### [Core SDK 1.12.4](/services.md)

* \*\*新增：\*\*支持 `-no-cloud-project-bind-popup` 标志，以防止显示弹出窗口。

* \*\*修复：\*\*修复了以下错误：即使链接了用户的项目，在重新导入包后启动编辑器时也会显示项目链接弹出窗口。

* **修复：**.NET Standard 目标的问题。

### [Cloud Code SDK 2.6.1](/cloud-code.md)

* \*\*新增：\*\*改进了脚本内参数解析错误反馈。

* \*\*新增：\*\*添加了最新 javascript 服务 SDK 的引用以支持自动完成。

* \*\*新增：\*\*Cloud Code 绑定生成。

* \*\*修复：\*\*在 Project（项目）窗口中选择 CloudCodeModuleReference 资源时出现的错误。

* \*\*修复：\*\*Node 项目未初始化时的 JS 脚本导入问题。

### [Cloud Save 3.1.1](/cloud-save.md)

* \*\*新增：\*\*添加了 Apple 隐私清单。

* \*\*新增：\*\*通过在 `CloudSaveService.Instance.Data.Player` API 中向现有方法添加可选的 `options` 对象，支持与玩家数据交互时使用访问类。如需了解有关访问类的更多信息，请参阅[文档](/cloud-save/concepts/player-data.md#access-classes)。
  * 除了现有的默认类之外，还允许玩家将数据保存到公共访问类，这使得其他玩家可以看到保存的数据。
  * 除了现有的默认类之外，还允许玩家从公共和受保护访问类读取数据，其中受保护玩家数据只能由服务器权威来源（例如 Cloud Code）设置。
  * 允许玩家通过在新 `options` 对象中提供 Player ID 来读取其他玩家的公共玩家数据。

* \*\*新增：\*\*支持通过新的 `QueryAsync` 方法查询公共玩家数据和默认自定义数据。如需了解有关查询的更多信息，请参阅[文档](/cloud-save/concepts/queries.md)。

  * 可为已编制索引的数据指定过滤器（例如 clanMemberCount \< 20）来查询配置了索引的任何数据。
  * 通过在 `Query` 对象中指定 `ReturnKeys`，可以在查询响应中获取为返回的实体存储的任何数据（无论是否已编制索引）。

* **更改：**现有的 `CloudSaveService.Instance.Data.Player.DeleteAsync` 已标记为过时，并添加了一个新版本，这个版本接受 `CloudSave.Models.Data.Player.DeleteOptions` 类型而不是 `CloudSave.DeleteOptions` 类型的选项。这样就可以添加新的选项来支持访问类（请参阅上文的**新增**）。

### [Lobby SDK 1.2.0](/lobby.md)

* \*\*新增：\*\*添加了 `EnableLocalPlayerLobbyEvents` 来启用/禁用本地玩家触发的 Lobby 事件。

### [CLI 1.3.0](/services/ugs-cli-introduction.md)

* \*\*新增：\*\*添加了新的服务模块 Scheduler。

* \*\*新增：\*\*添加了用于部署的 `new-file`。

* \*\*新增：\*\*添加了 `list` 以查看实时计划。

* \*\*新增：\*\*添加了对 [Scheduler 服务](/triggers/overview.md#scheduler)的支持以进行部署和获取操作。

* **新增：**[触发器](/triggers.md)获取。

* \*\*新增：\*\*向 gsh build configuration create 命令添加了 `--readiness` 选项。

* \*\*新增：\*\*向 gsh build configuration update 命令添加了 `--readiness` 选项。

* \*\*新增：\*\*Game Server Hosting `core-dump` 命令，用于配置核心转储的外部存储位置（仅限 GCS）。

* \*\*新增：\*\*向 gsh build create/create-version 命令添加了 `--build-version-name` 选项。

* \*\*修复：\*\*对于不存在的目录，新建文件命令出现错误。

* \*\*修复：\*\*除非指定了 reconcile，否则对于不部署的服务，部署不再需要权限。

* \*\*修复：\*\*修复了 Economy 获取问题，此问题会导致不具有幂等性。

* \*\*修复：\*\*以前部署 CloudCode 模块时不会报告加载后的问题，这一问题得到了修复。

* \*\*修复：\*\*修复了将解决方案部署为 Cloud Code 模块时将使用解决方案路径而不是生成的 ccm 进行记录的问题。

* \*\*更改：\*\*改进了在 Cloud Code 模块部署中当解决方案没有明确主入口项目时部署失败的错误描述。

## 2024 年 2 月##september-2024

### [Cloud Services APIs SDK 0.1.1](https://docs.unity3d.com/Packages/com.unity.services.apis@0.1/manual/index.html)（实验性）##multiplayer-playmode-sdk-140-pre1httpsdocsunity3dcompackagescomunitymultiplayerplaymode14manualindexhtml

新增的实验性 Cloud Services APIs 包使用我们的 [OpenAPI 规范](https://services.docs.unity.com/)提供了对所有公共 API 的底层访问权限。因此，您可以扩展 UGS 并构建自己的解决方案。

要在 Unity 编辑器中安装该包，请在 Package Manager（包管理器）中选择 **Install package by name（按名称安装包）**，然后添加包名称 `com.unity.services.apis`。

如需了解有关此包的更多信息，请参阅 [Unity 论坛](https://forum.unity.com/threads/ugs-api-experimental-package-release.1543304/)。

* \*\*新增：\*\*API 编辑器示例和教程，可从 \*\*Services/API Samples（服务/API 示例）\*\*菜单项中访问。

## 2024 年 1 月##august-2024

### [Authentication SDK 3.3.0](/authentication.md)

* **新增：**`LastNotificationDate` 字段，用于向客户端提供玩家通知的最后创建日期。

* **新增：**`GetNotificationsAsync` 方法，让客户端可以请求玩家的通知。

* **新增：**`Notifications` 字段，用于在调用 GetNotificationsAsync 后缓存通知。

* **新增：**`BannedUser` 错误代码，用于在用户被封禁时识别异常。

* \*\*修复：\*\*依赖于设备时间的身份验证刷新和到期排期问题，此问题可能会导致极端情况。

## 2023 年 11 月##july-2024

### [Authentication SDK 3.2.0](/authentication.md)

* \*\*更改：\*\*将 `Custom Token Exchange` ID 提供商更改为 `Custom ID`。

* \*\*新增：\*\*向 `PlayerInfo` 添加了 `GetCustomId` 方法。

* \*\*新增：\*\*添加了具有 `appId` 参数的 `SignInWithSteamAsync` 方法以支持多个 App ID。

* \*\*新增：\*\*添加了具有 `appId` 参数的 `LinkWithSteamAsync` 方法以支持多个 App ID。

* \*\*新增：\*\*向 Steam ID 提供商添加了 `Additional App IDs` 以支持多个 App ID。

* \*\*修复：\*\*玩家帐户设置序列化。

### [Core SDK 1.12.1](/services.md)

* \*\*更改：\*\*由于传递依赖项出现不可预见的重大变化，回滚了服务注册表中的接口约束。

### [User Generated Content SDK 3.0.0](/services.md)

* \*\*更改：\*\*更改了 `GetTagsAsync` 以仅返回当前环境的标签。
* \*\*更改：\*\*新的或更新的公共内容现在将是 `public` 而不是 `publicGlobal`。

### [User Generated Content Bridge 3.0.0](/services.md)

* \*\*更改：\*\*更改了 `GetTagsAsync` 以仅返回当前环境的标签。

### [Safe Voice BETA](/vivox.md)

* \*\*改进：\*\*我们改进了 Safe Voice 中的毒性检测，使时刻级毒性误检率降低了 50%。
* \*\*新增：\*\*引入名为“Aggressive Intent（攻击意图）”的新毒性标签。此标签现在将突出玩家以攻击性语气传递极端语言的行为。

### [CLI 1.2.0](/services/ugs-cli-introduction.md)

* \*\*新增：\*\*支持 `gsh fleet` 命令下的用法设置。

* **新增：**`gsh server files list` 和 `gsh server files download`。

* \*\*修复：\*\*收到无效响应时的 Economy 反序列化错误消息。

* \*\*修复：\*\*在部署排行榜时无法移除分层和重置配置的问题。

### [Push Notifications](/push-notifications.md)

* **修复**：面向自定义受众且在相应定义中包含日期比较的推送通知会成功发送。
* **新增**：优化了 iOS 通知的设置文档。

### [Remote Config](/remote-config.md)

* \*\*新增：\*\*模板功能，允许开发者为他们的键设置 JSON 架构，增加一层安全性，防止改动值破坏玩家体验。请通过[模板](/remote-config/templates.md)文档了解更多信息。

### [Game Overrides](/game-overrides.md)

* \*\*新增：\*\*向 Game Overrides 添加了对 Remote Config [模板](/remote-config/templates.md)的支持，从而可以更安全地覆盖 Remote Config 值。

### [Deployment SDK 1.2.1](https://docs.unity3d.com/Packages/com.unity.services.deployment@1.2/manual/index.html)

* \*\*新增：\*\*使用多项服务时的整体 UI 性能得到改善。

## 2023 年 10 月##june-2024

### [Analytics SDK 5.0.1](/analytics.md)

* \*\*修复：\*\*当包含在某些事件中时，batteryLoad 和 deviceVolume 值不再过 ​​ 时。
* \*\*修复：\*\*Unity Player ID 在某些事件中不再被包含两次。
* \*\*修复：\*\*Unity Package Manager（包管理器）中的 Configure（配置）按钮现在可以正确指向 Project Settings（项目设置）中的 Analytics - Gaming Services（Analytics - 游戏服务）页面。
* \*\*修复：\*\*如果玩家在事件批量上传过程中请求删除数据，ClearBuffer(...) 不再抛出 ArgumentException。
* \*\*改进：\*\*现在记录事件时间戳和整数值的速度略有加快，并且内存分配减少。
* **更改：**`PrivacyUrl` 属性现在返回最新 Game Player and App User Privacy Policy（游戏玩家和应用用户隐私政策）页面的链接：[https://unity.com/legal/game-player-and-app-user-privacy-policy](https://unity.com/legal/game-player-and-app-user-privacy-policy)。

### [Authentication SDK 3.1.0](/authentication.md)

* \*\*新增：\*\*添加了对 `Custom ID` ID 提供商的支持。
* \*\*新增：\*\*添加了 `ProcessAuthenticationTokens` 方法以使用 SDK 启用自定义 ID 登录。
* \*\*新增：\*\*在 `Unity.Service.Authentication.PlayerAccounts` 包中添加了对 `Unity Player Accounts` ID 提供商的支持。
* \*\*新增：\*\*添加了 `PlayerAccounts.StartSignInAsync` 以开始执行 `Unity Player Accounts` 登录流程。
* \*\*新增：\*\*添加了 `PlayerAccounts.SignOut` 以注销当前玩家。

### [CLI 1.1.0](/services/ugs-cli-introduction.md)

* \*\*新增：\*\*添加了 Bash 安装程序以便在 MacOS 和 Linux 上用于下载和安装 UGS CLI

* \*\*新增：\*\*Economy 模块现在支持 Config as Code
  * 部署
  * 获取

* \*\*新增：\*\*访问模块现在支持 Config as Code
  * 部署
  * 获取

* \*\*新增：\*\*添加了用于 Economy 资源的 `new-file` 命令
  * 用于背包物品
  * 用于游戏货币
  * 用于虚拟购买
  * 用于实物购买
  * 用于 Cloud Code C# 模块
  * 用于项目访问策略
  * 用于触发器

* \*\*新增：\*\*在部署时支持 .sln 文件

* **新增：**.sln 文件现在会在部署之前被编译并压缩为 .ccm

* \*\*新增：\*\*触发器现在支持 Config as Code

  * 部署

* \*\*更改：\*\*服务可以支持多种文件扩展名

* \*\*更改：\*\*更新了 `ugs gsh machine list` 中的服务器状态

* \*\*修复：\*\*对配置类型不受支持的 Remote Config 文件进行部署时出现的处理异常

* \*\*修复：\*\*在排行榜加载失败时错误地部署为空排行榜并且不会上报该情况的问题

* \*\*修复：\*\*添加了当 Cloud Code 部署在试运行期间出现重复文件错误时的正确描述

* **修复：**`ugs gsh fleet-region update` 无法确保机群地区默认上线的问题

* **修复：**`ugs gsh fleet-region update` 命令布尔值输入参数拼写错误的处理异常

* \*\*修复：\*\*包含 JSON 数组的 Remote Config 的部署和获取问题。

### [In-App Purchasing SDK 4.10.0](https://docs.unity3d.com/Packages/com.unity.purchasing@4.10/index.html)

* \*\*更改：\*\*Unity 分发平台 - IAP 将在不久的将来某个时间点撤回对 UDP 的支持（公告待定）。在此之前，所有 UDP 功能将继续正常工作，但公共接口以及一些私有功能现在标记为 `[Obsolete]`。在下一次重大更新中，这些都将被移除，并且 UDP 将停止与该 In-App Purchasing 版本及后续版本一起使用。
* \*\*更改：\*\*Unity 分发平台 - 如果编辑器无法连接到 UDP 后端，现在可以在离线模式下使用一些 UDP 目录功能。此时可以继续输入价格，但是您必须手动同步价格。在这种情况下，Unity 建议您在重新建立连接时正确同步价格。如果编辑器无法连接到 UDP 后端，目录中会显示一条警告消息。
* \*\*更改：\*\*Analytics - 旧版 Analytics 内置模块 `com.unity.modules.unityanalytics` 不再是依赖项；如果不使用，可以将其从项目中移除。如果确实会使用，请确保其在项目中。
* \*\*更改：\*\*Project Settings（项目设置）- 在编辑器的 Services Project Settings（服务项目设置）页面中，我们更改了获取 Google Play 密钥的终端。此外，现在不再需要直接在编辑器中设置密钥，而是使用后台链接直接在后端进行设置，以避免将来出现错误。
* \*\*修复：\*\*Google Play - 某些 Unity 编辑器编译器版本剥离了 `GooglePurchaseUpdatedListener.onPurchasesUpdated`，而它被指定为 Google Billing 模块的回调，这一问题导致缺少购买失败回调并会记录 `"No such proxy method:"`。`BillingClientStateListener.onBillingServiceDisconnected`、`BillingClientStateListener.onBillingSetupFinished` 和 `SkuDetailsResponseListener.onSkuDetailsResponse` 也修复了这一问题。

### [User Generated Content SDK 2.0.0](/services.md)

* \*\*改进：\*\*快速入门指南和 API 文档。
* \*\*更改：\*\*将 `com.unity.services.core` 依赖项从 `1.7.1` 更新到 `1.9.0`。
* \*\*更改：\*\*将 `com.unity.services.authentication` 依赖项从 `2.4.0` 更新到 `2.5.0`。
* **新增：**`ContentVisibility` 选项：`public` 和 `unlisted`。
* **弃用：**`ContentVisibility` 选项：`publicGame` 和 `publicGlobal`。改用 `public`。
* **移除：**`ContentDTO` 模型中的 `OwnerAccountId`。
* **移除：**`ContentStatistics` 模型中的 `ContentDownloadStatistics`。
* **移除：**`ContentStatistics` 模型中的 `Subscribers`。
* **移除：**`ContentStatistics` 模型中的 `ContentReportStatistics`。
* **移除：**`ContentStatistics` 模型中的 `ContentRatingStatistics`。
* **移除：**`ContentStatistics` 模型中的 `ContentPortalVisitStatistics`。

### [User Generated Content Bridge 2.0.0](/services.md)

* \*\*新增：\*\*在 `External Authentication Step` 中使用外部身份验证的示例。
* \*\*新增：\*\*使用 Authentication 包依赖项支持 OAuth 身份验证。
* **新增：**`com.unity.services.authentication` 版本 `3.0.0` 依赖项。
* **新增：**`ContentVisibility` 选项：`public` 和 `unlisted`。
* **弃用：**`ContentVisibility` 选项：`publicGame` 和 `publicGlobal`。改用 `public`。

### [Game Overrides](/game-overrides.md)

* \*\*新增：\*\*创建支持统计显著性追踪的 A/B 测试。请参阅 [A/B 测试](/game-overrides/ab-testing.md)以详细了解如何利用此新功能。
* \*\*更改：\*\*目标指标现在仅适用于支持统计显著性追踪的 A/B 测试。

### [Remote Config SDK 4.0.0](/remote-config.md)

* \*\*更改：\*\*不再支持 Unity 2019 和 2020，支持的最低编辑器版本现在为 2021.3
* \*\*更改：\*\*将 com.unity.remote-config-runtime 依赖项更新至 4.0.1
* \*\*修复：\*\*使用 Deployment（部署）窗口来部署包含 JSON 数组的 Remote Config 时出现的问题

### [Economy SDK 3.3.0](/economy.md)

* \*\*新增：\*\*向 Economy 资源文件添加了 schema（架构）字段。
* \*\*新增：\*\*通过 Deployment（部署）窗口或 Deployment API 支持 Economy 资源部署。
* \*\*修复：\*\*修复了错误，此错误会阻止部署包含 schema（架构）字段的 Economy 资源。
* \*\*修复：\*\*修复了错误，即部署省略了初始值和最大值的本地货币资源文件时不会将远程资源更新为其默认值。
* \*\*修复：\*\*修复了错误，即部署省略了 customData 的本地资源文件时不会将远程资源更新为默认的 customData。
* \*\*修复：\*\*修复了错误，此错误在本地资源文件的内容无法反序列化时会导致部署的执行过程暂停。

### [Cloud Code SDK 2.5.1](/cloud-code.md)

* \*\*新增：\*\*编辑器支持 Cloud Code C# 模块部署。
* \*\*修复：\*\*修复了 Cloud Code C# 模块对具有多个项目的解决方案的创作支持。

### [Leaderboards SDK 2.0.0](/leaderboards/tutorials/unity-sdk/add-new-score.md)

* \*\*新增：\*\*在所有获取分数的方法中添加了可选的对象元数据。如果填充了此元数据，对象将随分数一起存储。
* \*\*新增：\*\*在所有获取分数的方法中添加了可选的布尔值 includeMetadata。如果布尔值为 true，则存储的分数元数据将作为 LeaderboardEntry 的一部分返回。
* \*\*新增：\*\*在 GetVersionsAsync 方法上添加了可选的整数限制。如果设置，则仅返回最新限定数量的存档版本。
* \*\*新增：\*\*GetVersionsAsync 现在返回字符串 versionId（排行榜的当前版本）和整数 totalArchivedVersions（存储的存档排行榜版本总数）。
* \*\*新增：\*\*在 AddPlayerScoreAsync 方法上添加了可选字符串 versionId。如果设置，versionId 将与当前实时排行榜 versionId 进行比较。如果不匹配，则不会提交分数。
* \*\*新增：\*\*编辑器支持 Config as Code。

### [Game Server Hosting (Multiplay) SDK 1.1.1](https://www.rocketscience.gg/multiplay/)

* \*\*新增：\*\*支持在编辑器中创作 Game Server Hosting 文件。
* \*\*新增：\*\*支持 Deployment（部署）窗口。
* \*\*修复：\*\*在创建构建版本时，避免切换目标（因为这可能会导致域重新加载），而是应该发出警告。

### [Deployment SDK 1.2.0](https://docs.unity3d.com/Packages/com.unity.services.deployment@1.2/manual/index.html)

* \*\*新增：\*\*在 Deployment（部署）窗口中新增了 Type（类型）列。

### [Core SDK 1.12.0](/services.md)

* \*\*新增：\*\*添加了服务注册表和新的包初始化接口，用于启用实例和编辑器时间服务。
* \*\*修复：\*\*解决了 IAccessTokens 达到速率限制的问题。

## 2023 年 9 月##may-2024

### [语音和文本聊天 (Vivox)](/vivox-unity.md)

* \*\*发布：\*\*Vivox Unity 包 v16。
  * Unity v16.0.0 是 Vivox API 的一次重大更新，需要手动更改。按照 [16.0.0 升级指南](/vivox-unity/v16-upgrade-guide.md)将现有的 Unity Vivox 实现版本升级到此新版本。
  * 此版本还支持 Vivox Text Chat 公测版功能。
* \*\*发布：\*\*所有 Vivox SDK 的 v5.21.1。
  * 此版本包含各种错误修复和改进。

### [Push Notifications 4.0.0-pre.1](/push-notifications.md)

* \*\*发布：\*\*4.0.0-pre.1 版本

* \*\*更改：\*\*现在只能在调用 `RegisterForPushNotificationsAsync` 之前订阅 `OnNotificationReceived`
  * 一旦 `RegisterForPushNotificationsAsync` 完成，如果应用是从远程通知启动的，则将调用 `OnNotificationReceived`

* \*\*更改：\*\*将 `com.unity.services.analytics` 依赖项更新到 `5.0.0`

* \*\*更改：\*\*将 `com.unity.services.core` 依赖项更新到 `1.10.1`

* \*\*更改：\*\*添加了 `com.unity.mobile.notifications` 版本 `2.2.0` 作为依赖项

* \*\*修复：\*\*现在，iOS 和 Android 之间通过推送通知启动应用时的行为是一致的（在 `RegisterForPushNotificationsAsync` 流程完成后才会广播传入的推送通知数据）

## 2023 年 8 月##april-2024

### [Authentication 3.0.0](/authentication.md)

* **新增：**`Code-Link` 身份提供商。
* **新增：**`GenerateSignInCodeAsync`、`SignInWithCodeAsync`、`GetSignInCodeInfoAsync` 和 `ConfirmCodeAsync` API，与 `Code-Link` 身份提供商结合使用。
* **更改：**`GetPlayerNameAsync` 接受 `autoGenerate` 参数，以防止其在玩家尚未创建玩家名称时自动生成玩家名称。

### [Analytics SDK 5.0.0](/analytics.md)

* \*\*新增：\*\*新的初始化和同意流程。如需更多信息，请参阅迁移指南：[/analytics/sdks-and-apis/sdk5-migration-guide](/analytics/sdks-and-apis/sdk5-migration-guide.md)
* \*\*弃用：\*\*旧的初始化和同意流程不应该再使用，并将在 SDK 的未来版本中移除。如需更多信息，请参阅迁移指南：[/analytics/sdks-and-apis/sdk5-migration-guide](/analytics/sdks-and-apis/sdk5-migration-guide.md)
* \*\*更改：\*\*将 `com.unity.services.core` 依赖项更新到 1.10.1
* \*\*更改：\*\*该包不再依赖于 Newtonsoft.Json
* \*\*更改：\*\*该包现在依赖于 Unity JsonSerialize 模块 (JsonUtility)
* \*\*更改：\*\*许多先前被标记为过时的元素现已被移除
* \*\*修复：\*\*如果没有互联网连接，Analytics 不再阻止服务初始化 (`UnityServices.InitializeAsync`)
* \*\*修复：\*\*现在可以在玩家以前拒绝了数据收集的会话期间再次同意数据收集（需要迁移到新的同意流程）
* \*\*修复：\*\*在某些默认拒绝访问文件系统的平台上，不再请求 Application.persistentDataPath
* \*\*修复：\*\*现在可在更多种类的服务器响应中清除事件缓冲区
* \*\*修复：\*\*现在可以在关机时更快地将事件缓存到磁盘（如果可用），以防止在离线状态下关闭游戏时丢失数据
* \*\*修复：\*\*现在会使用自定义用户 ID（如果已设置）发送数据删除请求，而不是始终使用安装 ID

### [Remote Config](/remote-config.md)

* \*\*更改：\*\*Remote Config 键的所有变体现在都会显示在 Game Overrides 表中。

## 2023 年 7 月##march-2024

### [语音和文本聊天 (Vivox)](https://docs.vivox.com/v5/general/core/5_21_0/en-us/Default.htm)

* \*\*发布：\*\*Vivox Text Chat 公测版。
  * 包括以下功能：聊天历史记录、编辑/删除、自适应聊天过滤器、防灌填、文本证据管理以及大型频道支持。
* \*\*更改：\*\*一些重大变更使 Voice and Text Chat (Vivox) 的先前版本过时。

### [Game Overrides](/game-overrides.md)

* \*\*更改：\*\*广告系列详细信息页面的视觉优化。

### [Push NotificationsBETA](/push-notifications.md)

* \*\*修复：\*\*当提供无效令牌时，测试工具 UI 现在会返回警告。

### [身份验证](/authentication.md)

* \*\*新增：\*\*添加了具有 `identity` 参数的 `SignInWithSteamAsync` 和 `LinkWithSteamAsync` 方法以提供增强的安全性。
* \*\*更改：\*\*将 `SignInWithSteamAsync` 和 `LinkWithSteamAsync` 方法的先前版本标记为过时。
* **新增：**`Username/Password` 身份提供商。
* **新增：**`SignInWIthUsernamePasswordAsync`、`SignUpWithUsernamePasswordAsync`、`AddUsernamePasswordAsync` 和 `UpdatePasswordAsync` API，与 `Username/Password` 身份提供商结合使用。
* **新增：**`IAccessTokenObserver` 组件，用于在访问令牌发生变化时发出通知。

### [CLI 1.0.0](/services/ugs-cli-introduction.md)

* \*\*新增：\*\*Leaderboards 现在支持根目录下的 `ugs deploy` 和 `ugs fetch` 命令。

* \*\*新增：\*\*Leaderboards 现在支持 `new-file`，为排行榜创建一个空文件。

* \*\*新增：\*\*Game Server Hosting 模块服务命令。运行 `ugs gsh -h` 可显示用法。

* \*\*新增：\*\*支持构建、构建配置、机群、机群地区和服务器。

* \*\*新增：\*\*向部署和获取命令添加了部署定义。

* \*\*新增：\*\*添加了与命令用法和使用的选项相关的分析。

* \*\*新增：\*\*在启用 -json 标志的情况下，部署/获取会以类似表格的格式返回一个数组。

* \*\*新增：\*\*部署会将文件配置发送到服务中。

* \*\*新增：\*\*获取会根据服务配置对本地文件进行更新。

* \*\*更改：\*\*移除了 Leaderboards 对 `create` 和 `update` 命令的支持以便支持 `deploy` 和 `fetch`。

* \*\*修复：\*\*实现 JsonConverters 以防止通过反射调用转换器时抛出 NotImplementedException。

* \*\*修复：\*\*当 stdin 重定向时 login 命令出现的错误。

* \*\*修复：\*\*修复了错误，此错误会阻止 Remote Config fetch dry run 更新获取的文件名。

### [Core SDK 1.11.0](/services/getting-started.md)

* \*\*新增：\*\*为想要在服务器上下文中支持运行操作的包添加了 IServerAccessToken 和 IServerEnvironmentId 组件。

* \*\*新增：\*\*添加了 IAccessTokenObserver 组件以使包能够了解 IAccessToken 值的更改。

* \*\*修复：\*\*修复了错误，此错误会在部署文件时记录额外错误。

## 2023 年 6 月##february-2024

### [Relay](/relay.md)

* \*\*更改：\*\*更新了缺少 [QOS 结果](/relay/qos.md)时选择区域的方式。

### [Remote Config](/remote-config.md)

* \*\*新增：\*\*Remote Config Runtime 4.0.1 升级为生产环境
* \*\*修复：\*\*错误修复（启用 WebGL 构建，修复了应用在后台运行时持久保留身份验证令牌的错误）
* \*\*更改：\*\*运行时代码现在更加符合 UGS 标准，许多使用体验方面的改进

### [Game Overrides](/game-overrides.md)

* \*\*修复：\*\*无法再删除游戏覆盖所针对的 Economy 键。

### [Push NotificationsBETA 3.0.1-pre.1](/push-notifications.md)

* \*\*修复：\*\*Web UI 中的过滤器现在可以按预期工作。

### [身份验证](/authentication.md)

* **新增：**[Unity Player Accounts](/authentication/unity-player-accounts.md) (beta) 身份提供商。
* \*\*新增：\*\*为 Unity 编辑器 2020.3 及更高版本发布了 Unity Player Accounts SDK (beta)。支持 Windows、Mac、Linux、iOS 和 Android 平台。
* \*\*新增：\*\*在 Authentication SDK 中支持 Unity Player Accounts 身份提供商。

### [Deployment 1.1.0](https://docs.unity3d.com/Packages/com.unity.services.deployment@1.1/manual/index.html)

* \*\*新增：\*\*Deployment 现在使用 Project Settings（项目设置）> Services（服务）> Environment（环境）中的主要 Environment Selector（环境选择器），也可以将其用于定义目标运行时环境。
* \*\*新增：\*\*支持在检视面板中设置部署定义排除路径。
* \*\*新增：\*\*支持在 Deployment（部署）窗口中设置部署定义排除路径。

### [Core SDK 1.10.1](/services.md)

* **新增：**`IAnalyticsUserId` 组件提供一种方法来获取 Analytics SDK 当前记录事件的相应用户 ID。
* \*\*新增：\*\*在 Project Settings（项目设置）> Services（服务）> Environments（环境）中添加了新的环境选择器。
* \*\*新增：\*\*添加了新的环境 API 以便服务对当前环境使用单一访问点。

### [Remote Config Runtime 4.0.1](/remote-config.md)

* \*\*更改：\*\*不再支持 Unity 2020.3，目前支持的最低版本为 2021.3

* \*\*更改：\*\*移除了 2.x 命名空间和相应的 API，以便向后兼容 2.x 实现版本

* \*\*更改：\*\*移除了静态 ConfigManager 类

* \*\*更改：\*\*更新了有关缓存和 Unity 属性的 SDK 文档

* \*\*更改：\*\*将 `com.unity.services.core` 依赖项从 `1.5.2` 更新到 `1.8.1`

* \*\*更改：\*\*将候选实验性包提升至已验证生产包

* \*\*更改：\*\*将分发终端从 `https://config.unity3d.com/settings` 更新为 `https://config.services.api.unity.com/settings`

* \*\*修复：\*\*修复了意外持久保留的身份验证令牌

### [UGC Bridge 1.0.1](/services.md)

* \*\*新增：\*\*初始发布版本

### [Game Server Hosting SDK 1.0.5](https://www.rocketscience.gg/multiplay/)

* \*\*修复：\*\*2020.3 版本以上的编辑器在 ReadyServerForPlayersAsync 调用时出现反序列化错误的问题。
* \*\*修复：\*\*与 Matchmaker 一起使用时对有效负载分配进行反序列化会抛出异常的问题。

### [In-App Purchasing 4.9.4](https://docs.unity3d.com/Packages/com.unity.purchasing@4.9/index.html)

* \*\*更改：\*\*Google Play - Billing Library 更新到 5.2.1（先前为 5.1.0）。未添加任何新功能支持，这只是为了增加与 Android 14 的兼容性。
* \*\*更改：\*\*Apple - 现在，使用 CrossPlatformValidation（或 AppleValidator）时，如果收据的证书链以 SHA-256 而不是 SHA-1 编码，则将验证收据。使用 SHA-1 编码的旧收据仍将被验证。请参阅 [Apple 技术说明](https://developer.apple.com/documentation/technotes/tn3138-handling-app-store-receipt-signing-certificate-changes)。

### [Leaderboards 1.0.0](/leaderboards/tutorials/unity-sdk/add-new-score.md)

* \*\*新增：\*\*Leaderboards SDK 的主要版本，其中包含一些新增文档以及对公共接口的名称、参数和命名空间的更改。

### [Cloud Build 1.0.5](/build-automation.md)

* \*\*新增：\*\*向资源包程序集添加了定义约束，以便不会在低于 2022 的 Unity 版本上加载。

* \*\*更改：\*\*根据 Unity Build Automation 品牌重塑需求相应地调整了资源包。

* \*\*修复：\*\*修复了文档和后台链接。

### [Player AccountsBETA 1.0.0-pre.2](https://unity.com/products/player-accounts)

* \*\*更改：\*\*将核心 SDK 依赖关系更新到了最新版本

### [CLIBETA 1.0.0-beta.5](https://services.docs.unity.com/guides/ugs-cli/latest/general/overview)

* \*\*新增：\*\*添加了批处理导入和部署功能以帮助防止 Too Many Requests（请求过多）错误。
* \*\*新增：\*\*Cloud Code 模块现在支持 `import` 和 `export` 命令。
* \*\*新增：\*\*Cloud Code 脚本现在支持 `import` 和 `export` 命令。
* \*\*新增：\*\*Lobby 现在支持 `import` 和 `export` 命令。
* \*\*新增：\*\*Leaderboards 现在支持 `import` 和 `export` 命令。
* \*\*新增：\*\*Remote Config 现在支持 `import` 和 `export` 命令。
* \*\*新增：\*\*Alpine 构建现已添加到发布版本中。
* \*\*新增：\*\*向部署和获取命令添加了新选项 `--services`。此选项仅对指定的服务执行命令。
  * \*\*\[重大更改]：\*\*使用 `--reconcile` 标志时，此选项是必需的。

\*\*\[重大更改]：**模块和脚本的 Cloud Code `list` 命令更具描述性。**\[重大更改]：**消息被定向到 StdErr 且输出被定向到 Stdout。**\[重大更改]：**Cloud Code create、delete、get、list、new-file、publish 和 update 命令现在位于父命令 `scripts` 下，可以通过 `cloud-code scripts <command>` 进行调用。**\[重大更改]：\*\*部署和获取输出已被修改以相互匹配。

* 状态已更新以反映编辑器中发生的情况。

* \*\*更改：\*\*所有导入/导出实现均使用标准化输出。

* \*\*更改：\*\*纯文本部署/获取输出现在会显示完整路径。

  * 这是为了消除具有相同名称但不同路径的文件的输出歧义。
  * 允许通过管道传输各个部分，例如 `ugs cmd 1>output 2>logs.txt`。
  * 提供 JSON 和常规格式。

* \*\*修复：\*\*无法读取的 Cloud Code 文件现在可以在输出中正确报告。

* \*\*修复：\*\*在部署输出中正确报告 Cloud Code 删除的文件。

* \*\*修复：\*\*在部署输出中正确报告 Remote Config 条目。

* \*\*修复：\*\*Remote Config 获取操作可以正确地向上传递文件加载过程中出现的问题。

* \*\*修复：\*\*从 Cloud Code 获取没有参数的文件时会不断附加 `module.exports.parameters = {}` 的问题。

* \*\*修复：\*\*多次使用 Cloud Code 获取和部署操作不再追加新行。

* \*\*修复：\*\*改进了错误处理以针对某些未处理的异常提供更多详细信息。

* \*\*修复：\*\*具有无效参数的 Cloud Code 脚本将无法获取并会显示在“失败”结果部分中。

## 2023 年 5 月##january-2024

### [Cloud Content Delivery](/ccd/.md)

* \*\*新增：\*\*新的 Insights（洞察）功能允许用户访问详细的 CCD 使用指标。

### [Core 1.9.0](/services/.md)

* \*\*新增：\*\*新的通用错误代码 `ProjectPolicyAccessDenied` 和 `PlayerPolicyAccessDenied`。
* \*\*更改：\*\*Newtonsoft（反）序列化调用具有线程安全性。
* \*\*更改：\*\*将 Newtonsoft 依赖项提升至 3.2.1 以使用最新的稳定版本。

### [Remote Config 3.3.2](/remote-config.md)

* \*\*更改：\*\*更新了实现文档和 ExampleSample.cs
* \*\*更改：\*\*更新了文档中的常规支持链接
* \*\*更改：\*\*改善了 UI 中切换版本时的加载时间
* \*\*修复：\*\*在 Unity 2022+ 的 Deployment（部署）窗口中加载时不显示可部署的资源 (.rc)
* \*\*修复：\*\*在不同的 .rc 文件中检测到重复的键时会显示两次部署错误消息
* \*\*修复：\*\*修复了编译警告

### [Cloud Code 2.3.2/2.4.0](/cloud-code.md)

* \*\*新增：\*\*Cloud Code C# 模块中为特定玩家和整个项目推送消息的订阅方法。
* \*\*更改：\*\*超时时间从 10 秒增加到 25 秒。
* \*\*更改：\*\*不再缓存脚本，这一问题以前会阻止没有本地更改的部署。
* \*\*修复：\*\*当使用 JS 捆绑时，修改导入的文件将会启用主脚本的重新部署。
* \*\*修复：\*\*使用脚本内参数选择多个 .js 文件时，检视面板现在将保持禁止编辑状态。
* \*\*修复：\*\*当选择多个 .js 文件或部署定义时，检视面板现在将正确引用它们的实际类型。
* \*\*修复：\*\*在 Unity 2022+ 的 Deployment（部署）窗口中加载时不显示可部署的资源 (.js)。

### [Deployment 1.0.1](https://docs.unity3d.com/Packages/com.unity.services.deployment@1.0/manual/index.html)

* \*\*修复：\*\*Unity 2022 中加载时不显示资源。

### [Authentication 2.5.0](/authentication.md)

* **修复：**
  * 使用玩家名称时正确处理 Web 请求
  * 修复了某些情况下 SignInFailed 事件的异常报告
  * 移除了客户端的时间验证，以防止因设备上错误的日期/时间设置而导致令牌到期错误
  * 向 API 模型添加 Preserve（保留）属性，以防止玩家名称的代码剥离问题

### [Game Overrides](/game-overrides.md)

* \*\*修复：\*\*使用不再存在的受众的广告系列现在可以正确展示。
* **修复：\*\***&#x44;uplicate Audience（复制受众）\*\*按钮现在可以按预期工作。

### [Push NotificationsBETA 3.0.1-pre.1](/push-notifications.md)

* \*\*新增：\*\*提高了通知测试工具的性能和可用性。
* \*\*新增：\*\*更新了集成指南以包含 Firebase App 创建步骤。

## 2023 年 4 月##november-2023

### [CLIBETA 1.0.0-beta.4](https://services.docs.unity.com/guides/ugs-cli/latest/general/overview)

* **新增：**`ugs fetch` 现在支持 Cloud Code 脚本。
* \*\*修复：\*\*具有无效参数的 Cloud Code 脚本将无法部署，并在部署结果中显示于失败类别中。
* \*\*修复：\*\*部署空的或超过 10 MB 大小上限的 Cloud Code C# 模块不会再静默失败。
* \*\*更改：\*\*将 Jint 替换为 Node.js 进行 Cloud Code javascript 参数解析。用户需要安装版本高于 14.0.0 的 Node.js 来解析 Cloud Code javascript。

### [Core 1.8.2](/services/.md)

* \*\*修复：\*\*修复了 Newtonsoft 的用法，使其不再受到 JsonConvert.DefaultSettings 更改的影响

### [Unity DevOps](https://unity.com/products/unity-devops)

* \*\*新增：\*\*Unity Version Control：
  * 支持 Unity Version Control 代码仓库加密
  * 嵌入式多媒体查看器，用于显示视频、音频和 3D 文件（glb、gltf、obj）
  * 支持在代码审查中添加群组作为审查者
* \*\*新增：\*\*Build Automation：
  * 构建历史记录的搜索功能
  * 构建历史记录的批量删除功能
  * 通用 Windows 平台 (beta) 支持
* \*\*改进：\*\*Unity Version Control：
  * 嵌入式 3D 查看器现在可以完全支持 .fbx 文件，无论其纹理是嵌入在文件内，还是存储为外部文件
* \*\*改进：\*\*Build Automation：
  * 现在，表单会清楚地向用户表明他们是否更改了数据，这样他们就不会忘记在离开页面之前保存
  * 更新了 Play（运行）按钮行为以支持本地 webgl 构建和自定义模板 webgl 构建
  * 在修改源代码管理设置时，新用户或没有 UVCS 组织的用户现在将看到一条横幅，其中包含有关使用 Unity Version Control 的有用信息
  * 用户现在可以在修改或创建目标后选择 Save and build（保存并构建）

### [Remote Config 3.3.2-pre.2](/remote-config.md)

* \*\*修复：\*\*现在，在不同的 `.rc` 文件中检测到重复的键时只显示一条错误消息
* \*\*修复：\*\*改进了 json 反序列化以便在 Deployement（部署）窗口获得更好的体验

### [Game Overrides](/game-overrides.md)

* \*\*新增：\*\*增加了对可选目标指标的支持。
* \*\*新增：\*\*改进了报告摘要表的加载体验。
* \*\*新增：\*\*现可在报告摘要表中获取参与者数据。
* \*\*新增：\*\*在报告页面中添加了 Total participants（总参与者数）和 Override length（覆盖长度）卡片。
* \*\*新增：\*\*在报告页面中添加了 Override Started（已开始覆盖）注释。
* \*\*修复：\*\*没有数据的玩家现在会进入 New Players（新玩家）受众，而以前则不会。
* \*\*修复：\*\*在创建过程中切换项目时崩溃。

### [Analytics 4.4.2](/analytics.md)

* \*\*修复：\*\*撤销同意（选择退出）现在也会上传数据删除请求
* \*\*改进：\*\*记录事件现在明显加快了速度，并且内存分配更少

### [Analytics 后台](/analytics.md)

* \*\*新增：\*\*Data Explorer（数据资源管理器）和 SQL Data Explorer（SQL 数据资源管理器）中新增了一些图表类型（饼图、堆积条形图）
* \*\*新增：\*\*在 SQL Data Explorer（SQL 数据资源管理器）中创建数据透视表的选项

### [In-App Purchasing 4.8.0](/iap.md)

* \*\*新增：\*\*在编辑器中添加了[新的 IAP 按钮](https://docs.unity3d.com/Packages/com.unity.purchasing@4.8/manual/CodelessIAPButton.html)。这个新按钮可用于更大程度的 UI 自定义。新按钮将不再默认更新按钮字段。
* \*\*修复：\*\*Google Play - 修复了 Unity IAP 4.6.0 引入的 BillingClientStateListener.onBillingServiceDisconnected() 表示中的无此类代理方法异常。
* \*\*更改：\*\*从 IAP SDK 依赖项中移除了 com.unity.services.analytics。
* \*\*更改：\*\*Google Play - Billing Library 从 4.0.0 版更新至 5.1.0 版 Google 发行说明。新的 Google Billing 功能目前尚未获得支持，它们将包含在未来的重大更新中。
* \*\*更改：\*\*将 com.unity.services.core 从 1.5.2 升级到 1.8.1。

### [Push NotificationsBETA 3.0.1-pre.1](/push-notifications.md)

* \*\*新增：\*\*分步设置指南。
* \*\*新增：\*\*更新了设置页面，提供更清晰的 UI 和测试集成选项。
* \*\*修复：\*\*在创建过程中切换项目时崩溃。

## 2023 年 3 月##october-2023

### [访问控制](/services/access-control.md)

* \*\*新增：\*\*添加了一项新功能来控制经过身份验证的玩家对特定 UGS 产品的 API 访问，请阅读[此处](/services/access-control.md)的内容了解更多详细信息。

### [Unity DevOps](https://unity.com/products/unity-devops)

* 推出用于游戏开发的 Unity DevOps，请在[此处](https://unity.com/features/collaboration)阅读我们的发布博客！

### [LeaderboardsBETA](/leaderboards.md)

* \*\*新增：\*\*发布了新的 [Leaderboards](https://unity.com/pt/products/leaderboards) 产品
* **新增：**[Leaderboards v1.0.0-exp SDK](/leaderboards/get-started.md)

### [FriendsBETA](/friends.md)

* \*\*新增：\*\*发布了新的 [Friends](https://blog.unity.com/engine-platform/introducing-friends-and-leaderboards) 产品
* **新增：**[Friends SDK 0.2.0-preview.9](/friends/guides/get-started.md)

### [Authentication 2.5.0-pre3](/authentication.md)

* \*\*新增：\*\*玩家名称：
  * `UpdatePlayerNameAsync`、`GetPlayerNameAsync`、`PlayerName`
* \*\*新增：\*\*玩家管理：
  * 后台：启用/禁用玩家
  * 公共 Admin API：启用/禁用玩家、列出玩家
  * UGS CLI：`player` 模块、`create`、`delete`、`enable` 和 `disable` 命令
* \*\*更改：\*\*玩家管理：
  * 玩家概览：包括创建日期、上次登录和关联身份

### [Analytics 后台](/analytics.md)

* \*\*新增：\*\*用于添加自定义事件定义的新工作流程。用户现在可以提交事件，我们的平台会自动捕获事件有效负载，以方便创建事件定义。
* \*\*新增：\*\*在 Data Explorer（数据资源管理器）中添加了 Summary（摘要）行。用户现在可以显示每列的总和和平均值。
* \*\*更改：\*\*更新了 Data Explorer（数据资源管理器）和 SQL Data Explorer（SQL 数据资源管理器）中的表格视图。提高可读性并提供排序、列可见性和排序选项。

### [Analytics 4.4.1](/analytics.md)

* \*\*新增：\*\*CustomData 方法现在支持 `IDictionary<string,object>`、`IList<object>` 和 `Enum` 参数
* \*\*更改：\*\*现在，事件在记录时立即序列化，而不是在上传过程中序列化。这一改进应该可以缓解上传过程（每 60 秒）中可能遇到的任何卡顿
* \*\*更改：\*\*将 `com.unity.services.core` 依赖项更新到 1.8.1
* \*\*修复：\*\*现在可以在运行时更改自定义用户 ID（通过更新 `UnityServices.ExternalUserId`）
* \*\*修复：\*\*更改 ExternalUserId 现在会立即生效，而不是出现不可预测的延迟
* \*\*修复：\*\*记录太大而无法上传（超过 4MB）的单个事件时不再阻止上传任何其他事件（事件立即被丢弃并发出警告）
* \*\*修复：\*\*现在，当应用程序暂停超过 5 分钟时（Run In Background（后台运行）为禁用状态），会话 ID 会刷新
* **弃用：**`RecordEvent(Event event)` API 不再受支持，并将在未来版本中移除

### [Cloud Code](/cloud-code.md)

* \*\*新增：\*\*添加了一组新 API 以用于在 Cloud Code 中创建 [C# 模块](/cloud-code/modules/overview.md)。支持代码重用、nuget 依赖项、每个模块多个终端、本地单元测试等。
* \*\*新增：\*\*Cloud Code C# [CLI 模块](https://services.docs.unity.com/guides/ugs-cli/latest/cloud-code/Cloud%20Code%20Command%20Line/overview)。
* \*\*新增：\*\*Cloud Code SDK v2.3.1
  * \*\*新增：\*\*支持 Cloud Code C# 模块。
  * \*\*新增：\*\*支持 [JS 捆绑](/cloud-code/scripts/how-to-guides/write-scripts/unity-editor.md#js-bundles)。
  * \*\*修复：\*\*修复了 Cloud Code 脚本的 `null` 路径问题。

### [Remote Config](/remote-config.md)

* \*\*更改：\*\*字符串类型值的限制从 20,000 个字符增加到 65,535 个字符。
* \*\*更改：\*\*移除了 json 类型值的 20,000 个字符的限制。每个环境的总配置大小仍然为 5MB。
* \*\*修复：\*\*改进了 [Remote Config 文档](https://docs.unity3d.com/Packages/com.unity.remote-config@latest/index.html?subfolder=/manual/CodeIntegration.html)和 `ExampleSample.cs` 中获取和应用配置的示例。

### [Game Overrides](/game-overrides.md)

* \*\*新增：\*\*在报告页面上添加了相关图表类型。
* \*\*新增：\*\*为具有多个变体的 Game Overrides 添加了结束测试功能。
* \*\*新增：\*\*在报告页面上添加了摘要表。
* \*\*修复：\*\*修复了 API 规范 CampaignRequest 条件字段的类型缺失问题。
* \*\*修复：\*\*修复了模拟体验在某些情况下不起作用的问题。

### [Push NotificationsBETA 3.0.1-pre.1](/push-notifications.md)

* \*\*修复：\*\*解决了潜在的 Firebase 依赖项冲突。
* \*\*修复：\*\*添加了对 Android 13 权限的支持。
* \*\*修复：\*\*修复了编辑器运行模式下抛出的不必要错误。
* \*\*修复：\*\*修复了 Push Notifications 概览页面上显示的不正确内容类型。

### [Deployment 包 1.0.0](https://docs.unity3d.com/Packages/com.unity.services.deployment@1.0/manual/index.html)

* \*\*新增：\*\*GA 版本正式发布。
* \*\*新增：\*\*公开内部 API。
* \*\*修复：\*\*在 Deployment（部署）窗口中显示新环境时出现的问题。

### [Lobby](/lobby.md)

* \*\*发布：\*\*更新了 Lobby SDK 1.1.0-pre.4（[变更日志](https://docs.unity3d.com/Packages/com.unity.services.lobby@1.1/changelog/CHANGELOG.html)）
  * \*\*新增：\*\*更多具体的 LobbyEvents
  * \*\*新增：\*\*受密码保护的大厅

### [Use Cases Samples 1.9.1](https://github.com/Unity-Technologies/com.unity.services.samples.use-cases)

* \*\*新增：\*\*Serverless Multiplayer Game 示例演示了如何利用游戏大厅并参与简单的实时竞技场式游戏（玩家可以在游戏中收集游戏币以获得积分）。

* \*\*更改：\*\*将项目从 Unity 编辑器版本 2020.3.20f1 升级到 2020.3.41f1。
  * 将 Unity Services 包更新为截至 2023-03-13 的最新发布版本。

* \*\*更改：\*\*将各种非 UGS 包更新为已针对 Unity 编辑器 2020.3.41f1 验证的最新版本。

* \*\*更改：\*\*从 `ClientVersionCheck.cs` 中移除了 `RemoteConfigService.instance.SetCustomUserId()` 调用，因为只有在特定情况下才需要调用该方法，但 ClientVersionCheck 不是其中一种情况。

* \*\*更改：\*\*对文件进行了细微重构以支持新采用的代码静态分析规则。

* \*\*更改：\*\*添加了弹出窗口来解释主机离开或将玩家踢出大厅而导致客户端被迫返回 Serverless Multiplayer Game 主菜单的原因。

* \*\*更改：\*\*关闭 Serverless Multiplayer Game 中的 `Interpolate` 以提高游戏场景的响应能力并减弱游戏运行中的“主机优势”。该标志位于玩家化身预制件的 `ClientNetworkTransform` 组件中。

### [Economy](/economy.md)

* \*\*新增：\*\*Economy SDK v3.1.2
  * \*\*修复：\*\*修复了设置 UnityServices.ExternalUserId 时抛出异常的错误。
* \*\*新增：\*\*Economy SDK v3.1.1
  * \*\*新增：\*\*引入了新的同步配置工作流程。旧方法已被弃用。请参阅文档以了解新工作流程的更多信息。
  * \*\*移除：\*\*移除了从配置中获取不存在的货币时出现的冗余日志消息。
  * \*\*修复：\*\*修复了错误，此错误会导致在获取真实货币购买请求时无法填充 Store Identifiers（商店标识符）字段。
  * \*\*修复：\*\*修复了 writeLocks 未正确设置的错误。
  * \*\*修复：\*\*修复了错误，此错误会在获取具有自定义数据的虚拟购买时抛出异常。

## 2023 年 2 月##september-2023

### [身份验证](/authentication.md)

* \*\*新增：\*\*玩家管理：
  * 后台：删除帐户
  * 公共 Admin API：启用/禁用玩家

### [Cloud Code 2.2.4](/cloud-code.md)

* \*\*修复：\*\*修复了用于服务的损坏的 npm 库。
* \*\*修复：\*\*现在处理了一些失败情况下丢失的日志。
* \*\*修复：\*\*在预处理器指令后面添加了更详细的日志记录以用于诊断。

### [Analytics 后台](/analytics.md)

* **新增**：简化 Analytics 事件管理 - 扩展了创建窗口以包含参数。

### [Analytics 4.3.0](/analytics.md)

* \*\*新增：\*\*添加了 CustomData(string eventName) 方法来记录没有任何参数的事件。
* \*\*更改：\*\*现在会在 `UnityServices.InitializeAsync` 期间生成 `AnalyticsContainer` 对象。
* \*\*修复：\*\*修复了单个损坏事件可能会阻止发送所有后续事件的问题。
* \*\*修复：\*\*对于没有任何参数的事件，将 null 而不是参数字典传递给 `CustomData` 时，会出现 `NullReferenceException`，这一问题已修复。
* \*\*修复：\*\*当将货币代码 null 传递给 `ConvertCurrencyToMinorUnits` 时，会出现 `NullReferenceException`，这一问题已修复；现在，如果货币代码为 null 或为空，会抛出 `ArgumentNullException`。
* \*\*修复：\*\*2020.1 编辑器版本上的编译器错误。
* \*\*修复：\*\*修正了 `IAnalyticsService.Flush` 方法的文档注释以阐明行为和用法。

### [Game Overrides](/game-overrides.md)

* **新增**：Game Overrides 用户现在可以设置其覆盖的相关描述来说明覆盖的目的和预期结果。
* **修复**：在 Game Overrides 和 Push Notifications 之间切换时不再保持分页，在某些情况下还会导致显示错误页面。

### [Cloud Content Delivery 2.2.2](/ccd.md)

* \*\*新增：\*\*向 `CcdManagement` 添加了 `SetTimeout` 以允许配置 API 调用超时时间。
* \*\*新增：\*\*添加了 `GetEntriesAsync(EntryOptions, string, int)`，此方法应作为获取条目的首选方法。
* **新增：**`ListEnvironmentsByProjectAsync` 和 `GetEnvironmentByNameAsync` 方法。
* \*\*新增：\*\*添加了用于编写单元测试的 `MockHttpRequest`。
* \*\*新增：\*\*用于 `EnvironmentsApi` 的单元测试。
* **更改：**`InternalUploadAsync` 更改为使用签名的 URL 来上传内容。
* **更改：**`CreateEntryAsync`、`CreateOrUpdateEntryByPathAsync`、`UpdateEntryAsync` 和 `UpdateEntryByPathAsync` 更改为请求签名的 URL（如果需要根据 `IsUpToDate` 进行上传）。
* **更改：**`SetDefaultEnvironmentIfNotExists` 更改为使用 `ListEnvironmentsByProjectAsync`。
* \*\*更改：\*\*添加了新的 `TryCatchRequest` 以便针对没有环境的路由跳过 `SetDefaultEnvironmentIfNotExists`。
* \*\*更改：\*\*将 `accessToken` 和 `projectId` 的更新从 `CcdManagement.Instance` 移至可以移除以便进行测试的 Action。
* \*\*修复：\*\*修复了 `GetReleaseDiff` 和 `GetReleaseDiffEntries` 发送空的版本号查询参数的问题。
* \*\*修复：\*\*修复了 `GetOrgAsync` 和 `GetOrgUsageAsync` 在请求中发送格式有误的正文的问题。

### [Core SDK 1.7.1](/services.md)

* **修复：**`ActionScheduler` 不再每帧生成 GC 分配（以前是 40 字节）。
* \*\*修复：\*\*添加了 link.xml 生成器，以确保在启用代码剥离的情况下，所有必需的服务程序集都在构建中得到正确保存。此链接文件中仅列出提供 `IServiceComponent` 的服务。
* \*\*修复：\*\*遥测请求在失败时不再记录错误，除非启用 `ENABLE_UNITY_SERVICES_CORE_TELEMETRY_LOGGING` 作为脚本定义。
* \*\*修复：\*\*现在，在运行模式期间注册的所有 `ActionScheduler` 在退出运行模式时都可以正确取消注册。

### [In-App Purchasing 4.6.0](https://docs.unity3d.com/Packages/com.unity.purchasing@latest/index.html)

* \*\*新增：\*\*添加了新的恢复交易回调 `RestoreTransactions(Action<bool, string> callback)` 以便在 `RestoreTransactions` 不成功时获取错误字符串（`IAppleExtensions` 和 `IGooglePlayStoreExtensions`）。
* \*\*新增：\*\*添加了新的初始化失败回调 `IStoreListener.OnInitializeFailed(InitializationFailureReason, string)` 以便在调用 `OnInitializeFailed` 时获取错误字符串。
* \*\*新增：\*\*添加了新的设置失败回调 `IStoreCallback.OnSetupFailed(InitializationFailureReason, string)` 以便在调用 `OnSetupFailed` 时获取错误字符串。
* \*\*新增：\*\*添加了新的 `FetchAdditionalProducts`。`failCallback` 包含一个错误字符串。`IStoreController.FetchAdditionalProducts(HashSet<ProductDefinition>, Action, Action<InitializationFailureReason, string>)`。
* \*\*新增：\*\*Apple - `Product.appleOriginalTransactionId`：返回原始交易 ID。仅当在活跃会话中进行了购买时，此字段才可用。
* \*\*新增：\*\*Apple - `Product.appleProductIsRestored`：指示产品是否已恢复。
* \*\*新增：\*\*Google Play - 添加了 `IGooglePlayConfiguration.SetFetchPurchasesExcludeDeferred(bool exclude)` 以恢复以前的行为。不建议使用，仅当在 `IStoreListener.ProcessPurchase` 中处理 `Deferred` 购买时才应该使用。
* \*\*新增：\*\*Google Play - 添加了 `IGooglePlayStoreExtensions.GetPurchaseState(Product product)` 以获取产品的 `GooglePurchaseState`。
* \*\*新增：\*\*Google Play - 向 `GoogleBillingResponseCode` 添加了缺失的值，以便在适用时输出到 `PurchaseFailureDescription` 的消息中。
* \*\*新增：\*\*Codeless - 向 [IAP 按钮](https://docs.unity3d.com/Packages/com.unity.purchasing@4.6/manual/IAPButton.html)添加了用于在交易恢复时添加脚本的选项：`void OnTransactionsRestored(bool success, string? error)`。
* \*\*更改：\*\*旧的 OnInitializeFailed `OnInitializeFailed(InitializationFailureReason error)` 被标记为 `Obsolete`。
* \*\*更改：\*\*旧的 OnSetupFailed `OnSetupFailed(InitializationFailureReason reason)` 被标记为 `Obsolete`。
* \*\*更改：\*\*旧的 FetchAdditionalProducts `FetchAdditionalProducts(HashSet<ProductDefinition> additionalProducts, Action successCallback, Action<InitializationFailureReason> failCallback)` 被标记为 `Obsolete`。
* \*\*更改：\*\*旧的恢复交易回调 `RestoreTransactions(Action<bool> callback)` 被标记为 `Obsolete`（`IAppleExtensions` 和 `IGooglePlayStoreExtensions`）。
* \*\*更改：\*\*Apple - 从 Apple 接收的无效交易（其中产品未获授权）不再输出 `Finishing transaction` 日志。只有从未到达 `ProcessPurchase` 的交易才会受此影响。
* \*\*更改：\*\*Google Play - 枚举 `GooglePurchaseState` 现在将 `4` 识别为 `Deferred`。
* \*\*修复：\*\*Analytics - 现在可以正确处理 Analytics 4.3.0 中引入的 `ServicesInitializationException`。
* \*\*修复：\*\*Analytics - 修复了没有产品本地化数据时交易事件变得无效的问题。
* \*\*修复：\*\*Google Play - 修复了当 BillingClient 尚未就绪便查询 sku 详细信息时出现的 `NullReferenceException`。
* \*\*修复：\*\*Google Play - 修复了与 Google Play 应用商店断开连接的情况下将应用程序置于前台时出现的[应用程序无响应 (ANR)](https://developer.android.com/topic/performance/vitals/anr) 问题。
* \*\*修复：\*\*Google Play - 断开连接状态下获取产品时发生 `PurchasingUnavailable` 错误的次数被限制为每个连接一次。
* \*\*修复：\*\*Google Play - 默认情况下，在获取购买时，`Deferred` 购买不再发送给 `IStoreListener.ProcessPurchase`。这避免了授予未付款产品的可能性。这些购买只有在变成 `Purchased` 状态时才会被处理。这种情况可以用 `IGooglePlayConfiguration.SetFetchPurchasesExcludeDeferred(bool exclude)` 进行反转以确保不排除 `Deferred` 购买，但此类购买必须在 `IStoreListener.ProcessPurchase` 中处理。

### [Remote Config](/remote-config.md)

* \*\*更改：\*\*升级了后端基础架构以改善全球连接稳定性。Remote Config 目前为北美、欧洲和亚洲的流量提供服务。

### [Lobby 1.1.0-pre.3](/lobby.md)

* **新增**：`LobbyEvents` 现在提供了一个版本以供比较。
* **新增**：添加了 `CreateOrJoinLobby` 函数以便通过单次调用来创建或加入大厅。
* **新增**：向 Player 类添加了 `PlayerProfile` 字段。
* **新增**：引入了 `LobbyEvents` 函数以提供大厅实时变化更新。
* **修复**：移除了阻止 Lobby Events API 完全公开的防护机制。

## 2023 年 1 月##august-2023

### [Authentication 2.4.0](/authentication.md)

* \*\*新增：\*\*Apple Game Center 支持：
  * `SignInWithAppleGameCenterAsync`、`LinkWithAppleGameCenterAsync`、`UnlinkAppleGameCenterAsync`
  * `Apple Game Center Authentication API Support`
* \*\*新增：\*\*Player Account Deletion API。

### [Cloud Code 2.2.1](/cloud-code.md)

* \*\*修复：\*\*Deployment（部署）窗口中的重复文件现在显示为警告而不是错误。
* \*\*修复：\*\*在某些情况下会触发速率限制。

### [Remote Config 3.3.1](/remote-config.md)

* \*\*新增：\*\*更新了 Deployment API 实现以支持 Config As Code。
* \*\*修复：\*\*修复了在部署失败时不提供消息详细信息的问题。

### [DeploymentBETA 1.0.0-pre.7](https://docs.unity3d.com/Packages/com.unity.services.deployment@1.0/manual/index.html)

* \*\*新增：\*\*为 Deployment（部署）窗口添加新的 UI：增强了状态可观测性。
* \*\*新增：\*\*为 Deployment（部署）窗口添加新的 UI：使用复选框选择资源。
* \*\*修复：\*\*在多个编辑器会话之间保存部署状态。
* \*\*修复：\*\*部署速率限制问题。

### [In-App Purchasing 4.5.2](https://docs.unity3d.com/Packages/com.unity.purchasing@latest/index.html)

* \*\*修复：\*\*移除了导致编译器警告 CS0168 的未使用异常变量。
* \*\*修复：\*\*遥测 - 对于某些用户来说，对遥测报告的调用偶尔会引发 `NullReferenceException`、`IndexOutOfRangeException` 或 `KeyNotFoundException`。现在可以安全捕获并记录这些异常。通过将所有遥测调用移至主线程，也可以缓解这些失败情况。问题在 IAP 4.4.1 中发现，但可能更早。
* \*\*修复：\*\*Apple - 优化处理交易时的内存使用以便防止在启动时处理交易的过程中发生内存不足崩溃。
* \*\*修复：\*\*批处理模式 - 调用 `UnityPurchasingEditor.TargetAndroidStore` 来选择 UDP 现在可以成功检查 UDP 包安装情况并记录错误，而不是在批处理模式命令执行期间抛出一个阻止弹窗。
* \*\*修复：\*\*Analytics - 移除了收据 JSON 的转义字符，这些字符会导致后端出现解析问题。
* \*\*修复：\*\*Google Play - 修复了断开连接的情况下进行重试以完成交易时导致崩溃的错误。

### [Cloud Save](/cloud-save.md)

* \*\*更改：\*\*移除了 16KB 槽位大小限制，用户现在可以在所有槽位总共使用 5MB。
* \*\*更改：\*\*最大槽位数量从 200 增加至 2000。

### [Push NotificationsBETA 3.0.0-pre.1](/push-notifications.md)

* \*\*新增：\*\*产品后台链接现在会出现在包设置面板中。
* \*\*更改：\*\*重命名了包设置 (Android) 以便与 Firebase 设置名称匹配。
* \*\*更改：\*\*从公共 API 中移除了一些不打算直接使用的类。
* \*\*更改：\*\*移除了弃用的 `PushNotifications` 类和过时的 `PushNotificationSettings` 属性。
* \*\*修复：\*\*现在，从通知中启动完全关闭的应用时也会发送 `notificationOpened` 事件。
* **发布**了公测版。

### [分析](/analytics.md)

* \*\*新增：\*\*支持 UGS Analytics 中的旧版分析自定义事件以免更改游戏代码。

### [Game Server Hosting (Multiplay)](https://www.rocketscience.gg/multiplay/)

* \*\*修复：\*\*修复了订阅服务器事件时导致可能错过事件的争用条件的错误。

## 2022 年 12 月##july-2023

### [Relay 1.0.5](/relay.md)

* \*\*新增：\*\*将此版本的 Relay 与 UTP 2.0.0-pre.3 和 NGO 1.2.0 一起使用时可以在 webGL 上使用 Relay。
* \*\*新增：\*\*更新 `SimpleRelay` 示例。
* \*\*更改：\*\*将 `InteractiveRelayUtp` 示例替换为 `SimpleRelayUtp`。
* \*\*更改：\*\*将 QoS 依赖项更新到 1.1.0。
* \*\*更改：\*\*将 UTP 依赖项更新到 1.3.0。

### [Core SDK 1.7.0](/services.md)

* \*\*更改：\*\*编辑器 `AccessTokens` 现在根据会话缓存网关 JWT 并根据需要对其进行刷新。现在可以直接使用，无需缓存结果。
* \*\*修复：\*\*改进了调度程序组件的线程安全性。现在可以从任何线程安全地调用 `IActionScheduler`。
* \*\*修复：\*\*改进了遥测组件的线程安全性。现在可以从任何线程安全地调用 `IMetrics` 和 `IDisagnostics`。

### [Vivox](https://unity.com/products/vivox)

* \*\*修复：\*\*修复了 Android VivoxNative.aar 库的一个问题，此问题在尝试解析内部依赖项时会导致问题。

## 2022 年 11 月##june-2023

### [Authentication 2.3.1](/authentication.md)

* \*\*新增：\*\*Meta Quest (Oculus) 支持：
  * `SignInWithOculusAsync, LinkWithOculusAsync, UnlinkOculusAsync`
  * `Meta Quest Authentication API Support`
* \*\*新增：\*\*向 `PlayerInfo` 添加了 `GetGooglePlayGamesId()`。

### [Cloud Code 2.1.1](/cloud-code.md)

* \*\*新增：\*\*与 `Deployment` 包集成以支持 Config as Code，从而直接在编辑器中编辑和配置 CloudCode 脚本。
* \*\*修复：\*\*现在允许 Void 类型作为 CloudCode 脚本的返回类型。
* \*\*修复：\*\*移除了调用终端时对函数参数的要求。现在可以提供 null 值或者省略参数。

### [Core SDK 1.6.0](/services.md)

* \*\*新增：\*\*添加了 `UnityServices.ExternalUserId`，可用于将用户标识符从第三方提供商传递到 Unity Gaming Services（Unity 游戏服务）。
* \*\*新增：\*\*所有 `IInitializablePackage` 初始化时间现在均由 Services Core 度量。
* \*\*更改：\*\*现在，当依赖项树为 null 时，`CoreRegistryInitializer` 会抛出 `ServicesInitializationException` 而不是显式的 `NullReferenceException`。
* \*\*更改：\*\*ActionScheduler 已更新为具有线程安全性。
* \*\*更改：\*\*使用 Unity 2021.3 及更高版本进行构建期间，服务配置文件不会临时添加到 StreamingAssets 文件夹中。
* \*\*更改：\*\*没有关联 Project ID 的服务初始化操作现在会失败（抛出 `UnityProjectNotLinkedException`）。
* \*\*修复：\*\*除非启用 `ENABLE_UNITY_SERVICES_CORE_TELEMETRY_LOGGING` 作为脚本定义，否则持久遥测不再记录错误。当持久遥测产生错误时，会发送诊断信息。
* \*\*修复：\*\*Core 无法找到剥离的服务包时不会再初始化失败。
* \*\*修复：\*\*如果 Unity 包多次实现了 `IInitializablePackage`，Services Core 无法找到其所有实例。
* \*\*修复：\*\*修复了 null 配置值导致序列化问题的情况。
* \*\*修复：\*\*修复了不使用身份验证 API 时出现的剥离问题。

### [Deployment 1.0.0-pre.4](https://docs.unity3d.com/Packages/com.unity.services.deployment@1.0/manual/index.html)

* \*\*新增：\*\*Deployment（部署）窗口现在可以管理 Cloud Code 和 Remote-Config 的部署。
* \*\*新增：\*\*该包的第一个预发布版本。

### [Economy 3.0.0](/economy.md)

* **新增：**`CustomDataDeserializable` 添加到配置项，并且属于 `IDeserializable` 类型。
* \*\*新增：\*\*将缺失的 XmlDoc 添加到公共接口：`IEconomyConfigurationApiClient`、`IEconomyPlayerBalancesApiClient`、`IEconomyPlayerInventoryApiClient` 和 `IEconomyPurchasesApiClientApi`。
* \*\*移除：\*\*remote-config-runtime 依赖项。

### [Remote Config 3.2.2](/remote-config.md)

* \*\*新增：\*\*为 RC 编辑器实现了基于文件的创作。
* \*\*新增：\*\*添加了缓存机制的文档。
* \*\*新增：\*\*发布了版本控制功能，现在可以通过后台以及 Admin API 查看和恢复游戏配置的旧版本。

### [In-App Purchasing 4.5.1](https://docs.unity3d.com/Packages/com.unity.purchasing@latest/index.html)

* \*\*修复：\*\*Google Play - 修复了应用在前台运行时处理延期购买的问题。问题是在 Unity IAP 4.5.0 中引入的。
* \*\*修复：\*\*Google Play - 修复了启动应用时 `DequeueQueryProducts` 中发生的 `NullReferenceException`。问题是在 Unity IAP 4.2.0 中引入的。
* \*\*修复：\*\*Analytics - 修复了购买不可用产品而报告交易失败时出现的 `NullReferenceException`。问题是在 Unity IAP 4.2.0 中引入的。
* \*\*修复：\*\*Analytics - 旧版 Analytics 在自定义 UGS 环境中不再报告事件，这会导致实时销售数据误报。问题是在 Unity IAP 4.2.0 中引入的。

### [Matchmaker](/matchmaker/.md)

* \*\*修复：\*\*由于使用 Task.Delay，包内示例在 WebGL 构建中损坏，这一问题已通过轮询时的 Coroutine 实现得到解决。
* \*\*新增：\*\*MatchmakingResults 模型具有新属性“PoolId”。

## 2022 年 10 月##may-2023

### [Authentication 2.2.0](/authentication.md)

* \*\*新增：\*\*Bring Your Own Identity v1 - OpenID Connect 支持：
  * `SignInWithOpenIdConnectAsync, LinkWithOpenIdConnectAsync, UnlinkOpenIdConnectAsync`
  * `OpenID Connect Authentication API Support`
* **新增`:`** WebGL 支持。

### [Core SDK 1.4.3](/services.md)

* \*\*更改：\*\*遥测日志现在使用 `ENABLE_UNITY_SERVICES_CORE_TELEMETRY_LOGGING` 定义而不是 `ENABLE_UNITY_SERVICES_CORE_VERBOSE_LOGGING`。
* \*\*修复：\*\*添加了诊断消息长度限制和遥测计数限制，因此遥测服务不会拒绝遥测有效负载。

### [In-App Purchasing 4.5.0](https://docs.unity3d.com/Packages/com.unity.purchasing@latest/index.html)

* \*\*新增：\*\*Apple - 添加了对[家庭共享](https://developer.apple.com/app-store/subscriptions/#family-sharing)的支持。
  * 当产品权利被撤销时调用 API `IAppleConfiguration.SetEntitlementsRevokedListener(Action<List<Product>>`。使用已撤销产品列表来调用 `Action`。请参阅文档 Store Guides（商店指南）> iOS & Mac App Stores（iOS 和 Mac App Store）了解示例用法。
  * API - 现在可以在 `AppleProductMetadata` 中通过 `IStoreController.products` 从 `ProductMetadata.GetAppleProductMetadata()` 获取产品元数据。
  * API `AppleProductMetadata.isFamilyShareable` 指示产品是否可进行家庭共享。
  * `Apple App Store - 11 Family Sharing` 示例展示如何利用 Unity IAP 管理家庭共享购买。
* \*\*修复：\*\*Google Play - 处理促销代码等应用外购不再需要重新启动应用。应用下次在前台运行时会处理购买。技术限制：对于促销代码，如果在兑换代码时已打开应用，可能会收到对 `IStoreListener.OnPurchaseFailed` 的额外调用并返回 `PurchaseFailureReason.Unknown`。您可以放心地忽略此情况。
* \*\*修复：\*\*Google Play - 修复了由于 Unity IAP 4.2.0 中引入的并发问题导致获取产品时很少出现的 `NullReferenceException`。

## 2022 年 9 月##april-2023

### [Analytics 4.2.0](/analytics.md)

* \*\*新增：\*\*添加了 `SessionID` 属性，此属性返回当前用于填充所有事件的 `sessionID` 参数的 GUID 值。
* \*\*更改：\*\*降低了 gameRunning 事件的频率以减少过多的流量（这不会影响数据质量）。
* \*\*修复：\*\*由于隐私同意流程问题，SDK 初始化在 WebGL 上静默失败。
* \*\*修复：\*\*有关上传的 SDK 事件批处理在 WebGL 上静默失败。

### [In-App Purchasing 4.4.1](https://docs.unity3d.com/Packages/com.unity.purchasing@latest/index.html)

* \*\*新增：\*\*Google Play - Google Play Billing Library 版本 4.0.0。
  * Multi-quantity 功能尚未得到 IAP 包的支持，在未来的更新中将得到支持。在 Google Play Console 中不要启用 `Multi-quantity`。
  * 添加了对 [IMMEDIATE\_AND\_CHARGE\_FULL\_PRICE](https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.ProrationMode#IMMEDIATE_AND_CHARGE_FULL_PRICE) 按比例计费模式的支持。使用 `GooglePlayProrationMode.ImmediateAndChargeFullPrice` 以便于访问。
  * 收据 json 中的“`skuDetails`”现在是旧结构的数组，而不仅仅是一个对象。在大多数情况下，它只有一个元素，因此如果在您的应用中进行解析，请将其视为数组并默认获取第一个元素。
* \*\*修复：\*\*Google Play - 修复了由于 Unity IAP 4.2.0 中引入的并发问题而很少发生的 NullReferenceException 和 ArgumentException。
* \*\*修复：\*\*Amazon - 将 android:export 设置为 true 以支持 Android API 级别 31+。
* \*\*修复：\*\*Google Play - 修复了 `IGooglePlayConfiguration.SetDeferredPurchaseListener` 和 `IGooglePlayConfiguration.SetDeferredProrationUpgradeDowngradeSubscriptionListener` 回调有时无法从主线程调用的问题。
* \*\*修复：\*\*Google Play - 配置 `IGooglePlayConfiguration.SetQueryProductDetailsFailedListener(Action<int> retryCount)` 时，操作调用时 `retryCount` 从 1 开始，而不是从 0 开始。
* \*\*修复：\*\*Google Play - 升级/降级订阅时添加了验证逻辑，当旧交易 ID 为空或 null 时，该验证逻辑会调用 `IStoreListener.OnPurchaseFailed` 并返回 `PurchaseFailureReason.ProductUnavailable`。当尝试升级/降级不属于用户的订阅时可能会发生这种情况。

### [Vivox](https://unity.com/products/vivox)

* \*\*修复：\*\*修复了与音频缓冲区相关的生成 API 导致 Unity 编辑器崩溃的问题。
* \*\*新增：\*\*将许多先前省略的生成 API 添加回 SDK。
* \*\*修复：\*\*修复了将构建配置值存储为 null 值而不是空字符串的问题；如果未在项目设置中链接项目，这一问题会导致编辑器中出现异常。

## 2022 年 8 月##march-2023

### [Analytics 4.1.0](/analytics.md)

* \*\*新增：\*\*添加了一种在运行时访问 Analytics 使用的用户 ID 的方法。
* \*\*修复：\*\*现在记录事件时带有时间戳（包括毫秒）。
* \*\*修复：\*\*为更多模型对象提供了 XML 文档。
* \*\*修复：\*\*当 Project ID 缺失时会显示更好的错误消息。

### [Lobby 1.0.3](/lobby.md)

* \*\*修复：\*\*修复了 `LobbyConflict` (HTTP 409) 解析时会抛出 `ArgumentNullException` 的错误。
* \*\*修复：\*\*修复了报告 `CommonErrorCode` 而不是 `LobbyExceptionReason` 的问题，此问题会导致一些 switch case 无效。

### [In-App Purchasing 4.3.0](https://docs.unity3d.com/Packages/com.unity.purchasing@latest/index.html)

* \*\*新增：\*\*Google Play - Unity IAP 查询产品详细信息失败时调用的 API `IGooglePlayConfiguration.SetQueryProductDetailsFailedListener(Action<int>)`。每次查询产品详细信息失败时都会调用 `Action` 并进行重试计数。请参阅文档 **Store Guides（商店指南）**> **Google Play** 了解示例用法。

### [Matchmaker](/matchmaker/.md)

* \*\*修复：\*\*在某些 IL2CPP 平台编译中，Multiplay 令牌类的序列化将被剥离。

### [Vivox](https://unity.com/products/vivox)

* \*\*更改：\*\*调整了 Windows 和 Mac VivoxNative 库 .meta 文件以启用 Load on Startup（启动时加载）功能，这样无论编辑器的构建目标是什么，都会进行加载。值得注意的是，如果编辑器构建目标是 iOS，则在进入运行模式时，由于与 Windows 库一起用于编辑器的 Mac 库尚未加载，这会导致编译器错误。
* \*\*修复：\*\*修复了各种插件 .meta 文件未定向到具体平台的问题；如果安装了额外的 Vivox 平台包，这一问题会导致编辑器在进入运行模式时崩溃。
* \*\*修复：\*\*修复了当 ChatChannelSample 没有 Authentication 包时会导致编译器错误的问题。安装了 ChatChannelSample 时，Authentication 包应该会自动导入，但如果没有，则会出现编译器错误。

## 2022 年 7 月##february-2023

### [Authentication 2.1.1](/authentication.md)

* \*\*新增：\*\*Google Play Games 支持：
  * `SignInWithGooglePlayGames, LinkWithGooglePlayGames, UnlinkGooglePlayGames`
  * `Google Player Games Authentication API Support`

### [Cloud Code 2.0.1](/cloud-code.md)

* \*\*修复：\*\*公共 `ICloudCodeService` 接口上缺失的 XmlDoc。

### [Cloud Save 2.0.1](/cloud-save.md)

* \*\*新增：\*\*将缺失的 XmlDoc 添加到公共 `ICloudSaveDataClient` 接口和 `CloudSaveService` 静态类。

### [Core SDK 1.4.2](/services.md)

* \*\*新增：\*\*当使用 `ENABLE_UNITY_SERVICES_CORE_VERBOSE_LOGGING` 作为脚本定义时，记录一个包含所有服务之间共享的通用配置的 JSON 以用于调试目的。
* \*\*新增：\*\*当构建包含 Core 包的项目且未在项目设置中链接该项目时记录警告。
* \*\*更改：\*\*如果 Core 初始化时没有 Cloud Project ID，记录错误而不是警告。
* \*\*修复：\*\*修复了为遥测提供空文件时出现的 `NullReferenceException`，通过引入 null 检查进行修复。
* **修复：**`DirectoryNotFoundException` 在 Switch 上出现不一致，通过解决竞争条件问题得到修复。

### [Remote Config 3.1.3](/remote-config.md)

* \*\*新增：\*\*在使用 2.x 命名空间内的 Analytics 的平台上，使用 `ENABLE_CLOUD_SERVICES_ANALYTICS` 标志。
* \*\*新增：\*\*将平台列入白名单以便从 2.x 命名空间内的 Analytics 包获取 userId。
* \*\*新增：\*\*允许 projectId 和 userId 参数位于控制台的有效负载中。

### [In-App Purchasing 4.2.1](https://docs.unity3d.com/Packages/com.unity.purchasing@latest/index.html)

* \*\*新增：\*\*添加了通过目录 UI 自动初始化 Unity Gaming Services（Unity 游戏服务）的功能。请参阅[文档](https://docs.unity3d.com/Packages/com.unity.purchasing@4.2/manual/UnityIAPInitializeUnityGamingServices.html)以了解更多详细信息。
* \*\*更改：\*\*In-App Purchasing 包现在要求 Unity Gaming Services（Unity 游戏服务）在初始化后才能使用。目前，IAP 仍然可以正常工作，但如果 Unity Gaming Services（Unity 游戏服务）尚未初始化，则会记录警告。在此包的未来版本中，初始化 Unity Gaming Services（Unity 游戏服务）将是强制性要求。请参阅[文档](https://docs.unity3d.com/Packages/com.unity.purchasing@4.2/manual/UnityIAPInitializeUnityGamingServices.html)以了解更多详细信息。
* \*\*修复：\*\*由于在 1.4.1 中发现了新的错误，因此将 `com.unity.services.core` 从 1.4.1 降级到 1.3.1。

### [Matchmaker](/matchmaker/.md)

* \*\*修复：\*\*错误修复：在进行某些 Linux 平台的编译时，Multiplay 令牌类的序列化将被剥离。
* \*\*新增：\*\*向 CreateBackfillTicketOptions 添加了 PoolId 和 MatchId 以支持 Photon 集成。

### [Vivox](https://unity.com/products/vivox)

* \*\*新增：\*\*将 VivoxConfig 作为参数添加到 VivoxService.Instance.Initialize(...) 方法中，以便开发者可以在启动时配置 Vivox Client 的设置。
* \*\*更改：\*\*将环境 ID 附加到 AccountId 和 ChannelId URI 时，不再从环境 ID 中移除减号（“-”）字符。环境 ID 现在将逐字附加。
* \*\*修复：\*\*Android 平台生成的文件进入包后，由于其他库中不存在相应 API，因此无法解析包中的方法，这一问题现在得到了解决。
