> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 玩家数据

> 了解 PlayFab 玩家数据:按玩家存储自定义键值字段,包括用于进度的内部、只读和游戏数据。

玩家数据是按玩家存储的、作用域为玩家实体(`title_player_account`、`master_player_account` 和 `character`)的数据。可用来存储游戏进度、偏好设置以及与单个玩家关联的其他信息。

玩家数据是 PlayFab 中若干存储功能之一,每种功能对应不同的实体类型。有关比较,请参见[实体对象](/services/playfab/live-service-management/game-configuration/entities/entity-objects#related-features)。

## 存储选项

PlayFab 提供两种存储玩家数据的方式:

* [实体](/services/playfab/live-service-management/game-configuration/entities):允许你在 Player、Character 和 Group 中以对象和文件的形式存储数据。
* [玩家数据 / UserData](/services/playfab/player-progression/player-data/quickstart):允许你为玩家存储键/值对数据。

为了获得最高的灵活性和最佳性能,我们建议*所有*新游戏都使用[实体对象](/services/playfab/live-service-management/game-configuration/entities/entity-objects)。

在 PlayFab API 中,函数名称使用术语 **UserData**。在 **Game Manager** 中,这一概念称为**玩家数据 (Player Data)**。两者含义相同,可互换使用。

访问玩家数据有三种模式:

* 客户端 (Client):这是可供游戏客户端读取和更新的玩家数据。你可以使用客户端 API [UpdateUserData](xref:titleid.playfabapi.com.client.playerdatamanagement.updateuserdata) 进行创建、更新或删除,使用 [GetUserData](xref:titleid.playfabapi.com.client.playerdatamanagement.getuserdata) 读取玩家数据。
* 只读 (Read Only):这是由你的服务器创建或更新的玩家数据。游戏客户端可以读取但不能更新此数据。你可以使用服务器 API [UpdateUserReadOnlyData](xref:titleid.playfabapi.com.server.playerdatamanagement.updateuserreadonlydata) 进行创建、更新或删除,使用客户端 API [GetUserReadOnlyData](xref:titleid.playfabapi.com.client.playerdatamanagement.getuserreadonlydata) 读取该玩家的特定游戏数据。这些数据对玩家可见,但只能由服务器修改。
* 内部 (Internal):这是仅服务器可用的玩家数据。你可以使用服务器 API [UpdateUserInternalData](xref:titleid.playfabapi.com.server.playerdatamanagement.updateuserinternaldata) 进行创建、更新或删除,使用 [GetUserInternalData](xref:titleid.playfabapi.com.server.playerdatamanagement.getuserinternaldata) 读取该玩家的特定游戏数据。此数据仅服务器可见,客户端不可见。

在使用玩家数据时,只有 User Data 和 User Read Only Data 可以被客户端 API 使用。如果你希望其他玩家能够读取某位玩家的数据,则需要在写入数据时将 `Permission` 值设置为 `Public`。

## 玩家数据与玩家发行商数据

[玩家数据](/services/playfab/player-progression/player-data/quickstart)是特定于某个游戏的玩家信息。应将其用于特定于游戏的信息——例如保存玩家在地下城中的位置,或其他游戏专用数据。

玩家发行商数据 (Player Publisher data) 是与玩家账户关联的数据,而不是与玩家账户*加*游戏关联。它用于保存对工作室内所有游戏都相关的玩家信息(其中也可能包含用于跨游戏奖励的特定于游戏的信息)。

默认情况下,PlayFab 中同一工作室内的所有游戏共享一个 Publisher ID,该 ID 定义了这种关系。玩家账户存在于 Publisher 层,并在所有具有相同 Publisher ID 的游戏之间共享(此外每个游戏另有独立的玩家数据)。

如果你需要在一个工作室内让不同的游戏拥有不同的 Publisher ID,或需要在不同工作室的游戏之间共享同一个 Publisher ID,可以在 [PlayFab 社区论坛](https://community.playfab.com/) 中提交工单,我们的**开发者成功**团队会为你提供帮助。

<Note>
  请不要将*玩家*发行商数据与[发行商数据](/services/playfab/live-service-management/game-configuration/titledata/using-publisher-data)混淆,后者是所有游戏共享的键/值对数据(**不是**按玩家存储的)。
</Note>

玩家发行商数据的用法与玩家数据的用法几乎相同。它们*都*是将字符串映射到 JSON 数据块(或其他任意字符串值)的字典。

有关详情,请参见[如何使用玩家发行商数据为在多个游戏中游玩发放奖励](/services/playfab/player-progression/player-data/using-player-publisher-data)。


## Related topics

- [玩家数据](/zh-CN/services/xbox-services/player-data/index.md)
- [PlayFab 玩家进程文档](/zh-CN/services/playfab/player-progression/index.md)
- [使用 PlayFab 进行玩家进程管理](/zh-CN/services/playfab/player-progression/player-progression-overview.md)
- [XBOX services 概述](/zh-CN/services/xbox-services/fundamentals/live-xbl-overview.md)
- [丰富在线状态附录](/zh-CN/services/xbox-services/community/presence/concepts/live-presence-apx.md)
