Pular para o conteúdo principal
Por padrão, a maioria dos SDKs do PlayFab armazena em cache os resultados de login do jogador. Esse cache pode ser conveniente no cenário mais comum, em que você espera o login de um único jogador. Em jogos que oferecem suporte a vários jogadores simultâneos ou em servidores em que você gerencia tanto o material de autenticação dos jogadores quanto as credenciais do servidor, esse cache pode atrapalhar. Para facilitar esses cenários, os SDKs do PlayFab contêm classes de API estáticas e instanciadas.

Classes de API estáticas versus instanciadas

A maioria dos exemplos e códigos de exemplo do PlayFab é criada usando classes de API estáticas. No Unity, por exemplo, você pode ver uma referência a PlayFabClientAPI. Essas classes estáticas gravam e leem o estado estático dentro do SDK. Sua dependência do estado estático dificulta o uso dessas classes quando você está trabalhando com vários jogadores no mesmo cliente de jogo. As classes de API instanciadas evitam esses problemas em troca de maiores requisitos de gerenciamento e acompanhamento da sua parte. Nos casos em que você precisa oferecer suporte a vários logins simultâneos do PlayFab, recomendamos o uso de classes de API instanciadas. No SDK do Unity, PlayFabClientInstanceAPI é a versão instanciada de PlayFabClientAPI. Todas as outras classes de API seguem um padrão de nomenclatura semelhante. Ao usar a versão instanciada de uma classe de API, você deve criar uma instância da classe antes de poder chamar qualquer método. Para criar uma instância, você precisa especificar algum contexto extra. Para a maioria das classes, o contexto extra necessário é apenas o contexto de autenticação do jogador. No Unity, esse contexto é PlayFabAuthenticationContext. Algumas classes contêm chamadas de login. Para essas chamadas, talvez você ainda não tenha o contexto de autenticação de um jogador. Nesse caso, você só precisa fornecer configurações básicas, como uma ID de título. Essas configurações são passadas por meio de um objeto PlayFabApiSettings.

Usando classes de API instanciadas

Depois de criar uma classe de API instanciada com um contexto de autenticação ou objeto de configurações de API apropriado, ela pode ser usada de forma semelhante a uma classe estática. Todos os objetos de solicitação e resposta são idênticos. A única diferença é que você é responsável por acompanhar o tempo de vida da instância e garantir que todos os possíveis chamadores do PlayFab recebam uma instância apropriada. Quando você lida com vários jogadores, precisa de várias instâncias de todas as classes de API, uma por jogador. Geralmente, é mais fácil gerenciar essas instâncias encapsuladas por trás de um objeto de jogador como proprietário, mas isso fica a seu critério. As classes instanciadas que fazem o login de um jogador (como PlayFabClientInstanceAPI) também criam e armazenam em cache o contexto de autenticação desse jogador dentro da instância da classe de API. Esse recurso permite que você faça referência facilmente ao contexto de autenticação ao criar quaisquer outras classes de que precisar.

Exemplo do Unity

Este código de exemplo demonstra como vários jogadores podem fazer login em um jogo e ter estados independentes acompanhados em instâncias de classe separadas. Neste exemplo, as classes de API e a funcionalidade básica são encapsuladas por trás de um objeto PlayFabPlayer simplificado. Quando o jogo é iniciado, fazemos o login de dois jogadores e, em seguida, obtemos todos os dados armazenados no PlayFab para cada um desses jogadores.

Exemplo do Unreal

Este exemplo de código demonstra um ator no Unreal que contém seu próprio contexto de login do PlayFab. Ele mostra como encapsular classes de instância da API do PlayFab dentro de uma classe ALoginActor. Várias instâncias de ALoginActor podem ser adicionadas a um mapa, receber seus próprios CustomIds e realizar operações do PlayFab de forma independente. LoginActor.h:
LoginActor.cpp:

Autenticação de servidor

Da mesma forma que as classes de API instanciadas permitem que um cliente de jogo lide com vários jogadores, elas permitem que os servidores lidem com uma combinação de autenticação de título e de jogador ou até mesmo com vários títulos simultaneamente. O padrão básico é quase idêntico. Instancie uma classe de API para lidar com o login do servidor, forneça a essa instância o objeto PlayFabApiSettings apropriado e, em seguida, chame uma API de autenticação. Se você estiver em um servidor, essa API geralmente é PlayFabAuthenticationInstanceAPI.GetEntityToken. Assim como no login de um jogador, o resultado de uma chamada a GetEntityToken é armazenado em cache na instância da classe de API e pode ser referenciado para criar mais instâncias de classe de API por meio da propriedade de instância authenticationContext.
Última modificação em 6 de outubro de 2026