> ## 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.

# Início rápido de dados do jogador

> O início rápido de dados do jogador do PlayFab mostra passo a passo como criar, ler e atualizar campos personalizados de chave-valor do jogador a partir dos SDKs de cliente e de servidor.

# Início rápido: definir e obter dados do jogador

<Note>
  Nas APIs do PlayFab, os nomes das funções utilizam o termo **UserData**. No **Game Manager**, esse conceito é descrito como **Player Data**. Eles são idênticos e intercambiáveis.
</Note>

Comece a usar os dados do jogador do PlayFab. Este início rápido mostra como definir e recuperar dados do jogador usando C# no Unity e usando o CloudScript do PlayFab.

Os dados do jogador são informações que se aplicam a um jogador individual ou a um grupo de jogadores (dados compartilhados) e são armazenados como pares de chave/valor (KVPs) pelo PlayFab. Este artigo aborda as chamadas de API de cliente, que são seguras para chamar a partir de qualquer processo ou contexto. Ele também aborda as chamadas de API de servidor, que devem ser feitas *somente* a partir de um processo de servidor dedicado que você controla ou de uma chamada do CloudScript cuidadosamente protegida. As APIs de servidor exigem sua chave secreta de desenvolvedor. A chave não deve ser fornecida ao seu cliente nem publicada com ele.

## Requisitos

* Uma [conta de desenvolvedor do PlayFab](https://developer.playfab.com).
* Uma cópia instalada do Unity Editor. Para instalar o Unity para uso pessoal por meio do Unity Hub, ou o Unity+ para uso profissional, consulte [Baixar o Unity](https://unity3d.com/get-unity/download).

<Note>
  O PlayFab Unity3D SDK oferece suporte ao Unity Editor versão 5.3 (lançado em dezembro de 2015) e posteriores.
</Note>

* Um projeto do Unity pode ser:
  * Um projeto totalmente novo. Para obter mais informações, consulte [Iniciando o Unity pela primeira vez](https://docs.unity3d.com/550/Documentation/Manual/GettingStarted.html).
  * Um projeto de tutorial guiado. Para obter mais informações, consulte [Introdução ao Unity](https://learn.unity.com/).
  * Um projeto existente.
* O PlayFab Unity3D SDK.

Para obter informações sobre como configurar o PlayFab Unity3D SDK, consulte o artigo [Início rápido: biblioteca de cliente do PlayFab para C# no Unity](/pt-BR/services/playfab/sdks/unity3d/quickstart). Esse artigo garante que você tenha uma conta do PlayFab e que tenha configurado corretamente o Unity3D SDK.

## Sobre os exemplos de código

Os exemplos em C# deste artigo foram escritos para o SDK do Unity. O SDK do Unity usa um modelo orientado a eventos para tratar tarefas não síncronas. Para executar o código de exemplo usando o SDK do C#, você precisa modificar o código para usar um modelo de Task assíncrono. Os métodos que precisam ser modificados têm Async acrescentado ao nome do método na assinatura. Por exemplo, SetObject no SDK do Unity se torna SetObjectAsync no SDK do C#. Para obter mais informações, consulte [Programação assíncrona com async e await](https://learn.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/async/).

Embora você possa usar um projeto do Unity existente, este início rápido pressupõe que você está usando o exemplo criado ao concluir o [Início rápido: biblioteca de cliente do PlayFab para C# no Unity](/pt-BR/services/playfab/sdks/unity3d/quickstart).

## Dados do jogador no Game Manager

Você sempre pode obter e definir dados do jogador pelo Game Manager executando as etapas a seguir.

* Abra o **Game Manager**. Se você não estiver familiarizado com ele, consulte o [Início rápido do Game Manager](/pt-BR/services/playfab/live-service-management/gamemanager/quickstart).
* Selecione a guia **Players**.
* Selecione o nome do **Player** para acessar a guia **Players Account**.
* Selecione a guia **Player Data** para ver os dados dele.

## Adicionar um método para definir e recuperar os dados do jogador

1. No Unity Editor, abra seu projeto de exemplo.

2. Na janela **Project**, abra **Assets** > **Scripts** e, em seguida, abra o script PlayFabLogin.

3. No Visual Studio, adicione o seguinte à instrução using:

   `using System.Collections.Generic;`

4. Para definir os dados do jogador, adicione um método `SetUserData` à classe `PlayFabLogin`. `SetUserData` usa o método [UpdateUserData](xref:titleid.playfabapi.com.client.playerdatamanagement.updateuserdata) para criar ou atualizar os dados do jogador conectado.

   O método cria (ou atualiza, se os pares de chave-valor (KVPs) já existirem) os KVPs `Ancestor`, com o valor `Arthur`, e `Successor`, com o valor `Fred`.

   ```csharp theme={null}
   void SetUserData() {
       PlayFabClientAPI.UpdateUserData(new UpdateUserDataRequest() {
           Data = new Dictionary<string, string>() {
               {"Ancestor", "Arthur"},
               {"Successor", "Fred"}
           }
       },
       result => Debug.Log("Successfully updated user data"),
       error => {
           Debug.Log("Got error setting user data Ancestor to Arthur");
           Debug.Log(error.GenerateErrorReport());
       });
   }
   ```

5. Para obter os dados do jogador, adicione um método `GetUserData` à classe `PlayFabLogin`. `SetUserData` usa o método [GetUserData](xref:titleid.playfabapi.com.client.playerdatamanagement.getuserdata) para recuperar os dados do jogador especificado.

   ```csharp theme={null}
   void GetUserData(string myPlayFabId) {
       PlayFabClientAPI.GetUserData(new GetUserDataRequest() {
           PlayFabId = myPlayFabId,
           Keys = null
       }, result => {
           Debug.Log("Got user data:");
           if (result.Data == null || !result.Data.ContainsKey("Ancestor")) Debug.Log("No Ancestor");
           else Debug.Log("Ancestor: "+result.Data["Ancestor"].Value);
       }, (error) => {
           Debug.Log("Got error retrieving user data:");
           Debug.Log(error.GenerateErrorReport());
       });
   }
   ```

6. Chame `SetUserData` e `GetUserData` no método `OnLoginSuccess`.

   ```csharp theme={null}
   private void OnLoginSuccess(LoginResult result) {
       Debug.Log("Congratulations, you made your first successful API call!");
       SetUserData();
       GetUserData(result.PlayFabId);
   }
   ```

7. Salve o arquivo.

## Executar o exemplo

No Unity Editor, selecione o botão de reprodução. Em caso de êxito, os resultados das chamadas serão exibidos na janela do console.

## Confira também

* [Como definir dados internos do jogador](/pt-BR/services/playfab/player-progression/player-data/how-to-set-internal-player-data)
* [Como obter dados internos do jogador](/pt-BR/services/playfab/player-progression/player-data/how-to-get-internal-player-data)
* [Como definir dados somente leitura do jogador](/pt-BR/services/playfab/player-progression/player-data/how-to-set-read-only-player-data)
* [Como obter dados somente leitura do jogador](/pt-BR/services/playfab/player-progression/player-data/how-to-get-read-only-player-data)
* [Como modificar dados somente leitura ou internos do jogador a partir do CloudScript](/pt-BR/services/playfab/player-progression/player-data/how-to-modify-read-only-internal-player-data)
* [Início rápido de dados de título](/pt-BR/services/playfab/live-service-management/game-configuration/titledata/quickstart)
* [Usando dados de publicador](/pt-BR/services/playfab/live-service-management/game-configuration/titledata/using-publisher-data)
* [Início rápido do CloudScript](/pt-BR/services/playfab/live-service-management/service-gateway/automation/cloudscript/quickstart)


## Related topics

- [Início rápido de dados do título](/pt-BR/services/playfab/live-service-management/game-configuration/titledata/quickstart.md)
- [Documentação de progressão do jogador do PlayFab](/pt-BR/services/playfab/player-progression/index.md)
- [Início rápido do inventário do jogador](/pt-BR/services/playfab/economy-monetization/economy-v2/inventory/quickstart.md)
- [Início rápido das Conexões de Dados](/pt-BR/services/playfab/data-analytics/export-data/data-connection-quickstart.md)
- [Início rápido das propriedades personalizadas do jogador](/pt-BR/services/playfab/live-service-management/game-configuration/segmentation/player-custom-properties-qs.md)
