Pular para o conteúdo principal
Esta seção fornece informações sobre o uso do PlayFab em conjunto com os serviços multijogador do Photon, como Photon RealTime e Photon Unity Networking (PUN). No momento, oferecemos as seguintes integrações com o Photon:
  • Autenticar jogadores do Photon com o PlayFab.
  • Escutar eventos de sala usando retornos de chamada do CloudScript do PlayFab.

Início rápido do Photon

Este início rápido mostra como configurar o Photon Multiplayer para funcionar com o PlayFab. No momento, o PlayFab oferece as seguintes integrações com o Photon:
  • Autenticar jogadores do Photon com o PlayFab.
  • Escutar eventos de sala usando retornos de chamada do CloudScript do PlayFab.
Neste início rápido, ilustramos como os dois recursos funcionam usando o projeto de exemplo do Photon para Unity mais recente.
Para obter uma experiência multijogador e de chat do PlayFab com suporte completo no Unity, consulte o PlayFab Party Unity Plugin para obter mais informações.

Pré-requisitos

  1. Um projeto do Unity com o SDK do PlayFab importado e um título configurado.
  2. O título do PlayFab registrado.
Este guia omite as configurações do aplicativo de chat. Para integrar seu aplicativo de chat, crie um novo Photon Chat Application e insira a App ID nas caixas correspondentes no Unity e na página do complemento Photon no PlayFab Game Manager.

Configurar um aplicativo do Photon

  1. Depois de se registrar e entrar no painel do Photon, selecione Create a new App.
Criar um novo aplicativo do Photon
  1. Selecione Photon Type.
  2. Escolha um Name.
  3. Crie uma Description.
  4. Envie selecionando Create.
Formulário de novo aplicativo

Configurar a autenticação

  1. Localize o aplicativo recém-criado na lista e selecione Manage.
Gerenciar o aplicativo de teste
  1. No painel do Application, localize e salve a App ID que fica abaixo do Title da página.
Salvar a App ID
  1. Localize a seção Authentication.
  2. Selecione Custom Server.
Autenticação de servidor personalizado A próxima página permite configurar a URL de autenticação do Photon.
Substitua o espaço reservado PlayFabTitleId pela sua própria Title Id.
  1. Insira a URL.
  2. Envie selecionando o botão Create.
Inserir a URL de autenticação

Configurar um título do PlayFab para o Photon

Navegue até a página do Game Manager do seu título e, em seguida:
  1. Navegue até a guia Add-ons.
  2. Na lista de Add-ons, localize e selecione Photon.
Guia Add-ons do Game Manager
  1. A página Photon Add-on permite instalar o Photon especificando sua Photon Realtime Application ID.
    • Opcionalmente, você pode especificar a Chat App ID.
    • Depois que você instalar o Add-on (3), uma Photon secret Key será gerada (2).
    • Salve-a para uso futuro ao configurar webhooks.
Lembre-se de salvar sua chave secreta do Photon em um local seguro e de fácil acesso. Ela será útil ao configurar os webhooks.
Copiar a Realtime App ID

Configurar webhooks do Photon

Como integração opcional, o Photon pode transmitir determinados eventos ao seu CloudScript do PlayFab. Isso é feito com webhooks:
  • Você especifica uma URL base.
  • Em seguida, especifica um caminho para cada um dos eventos disponíveis.
  • Um caminho é, efetivamente, o nome de um manipulador implementado no seu CloudScript.
A URL base tem o seguinte formato:
Substitua o espaço reservado Title Id pela sua própria Title Id.
Substitua o token PhotonSecretKey pela chave secreta que você gerou na página Photon Add-on.
  1. Preencha a Base URL.
  2. Atribua um Name de manipulador do CloudScript para cada um dos Events disponíveis.
  3. Remova todos os CustomHttpHeaders.
  4. Envie selecionando o botão Save.
Atribuir manipuladores de eventos do CloudScript

Configurar um projeto do Unity

O guia pressupõe que você já tenha o SDK do PlayFab importado e configurado, além das configurações do título definidas.
  • Comece navegando até a Asset Store.
  • Localize o pacote Photon Unity Networking Free.
  • Selecione Import (1).
  • Você pode inspecionar os arquivos importados.
  • Em seguida, selecione Import (2).
Importar o Photon Unity Logo após o término do processo de importação, a janela PUN Setup é aberta.
  • Insira sua Realtime Application ID (1), encontrada no Photon Application Dashboard do Photon App que você criou.
  • Selecione Setup Project (2).
  • Quando a configuração terminar, selecione Close (3).
Configuração do PUN Se a AppId for aceita, o objeto Photon Server Settings será selecionado e poderá ser exibido na janela Unity Inspector. Para acessar manualmente o objeto Server Settings:
  • Navegue até o painel superior da janela.
  • Selecione Window.
  • Em seguida, selecione Photon Unity Networking (1).
  • Por fim, selecione Highlight Server Settings (2).
  • A janela de projeto Standard Unity revela o objeto PhotonServerSettings (3).
  • Selecione o objeto para revelar suas configurações na janela Unity Inspector.
Configurações do servidor do Photon
Como parte de PhotonServerSettings, você tem a opção de atribuir a Chat Application ID.
Nesse ponto, o projeto está configurado.

Implementar a autenticação do PlayFab no Photon

Quando você habilita o Photon Add-on para seu título no PlayFab Game Manager e configura a autenticação no painel do Photon Application, o PlayFab permite autenticar jogadores existentes do PlayFab no ambiente do Photon. Isso significa que você pode evitar completamente a implementação de qualquer gerenciamento de usuários para o Photon.
  1. Navegue até a cena DemoHub-Scene-V2 do pacote Photon Unity Networking Free, versão Classic.
    • Essa cena é um hub para todos os exemplos do pacote.
    • Como é a primeira cena a ser carregada, vamos adicionar um pequeno script para habilitar a autenticação do PlayFab com o Photon.
  2. Crie um GameObject vazio chamado PlayFabAuthenticator.
  3. Em seguida, na janela Unity Inspector, adicione um componente com o mesmo nome a esse GameObject.
Adicionar o componente de autenticação Selecione o ícone de engrenagem e escolha editar o script no menu suspenso. Copie e cole o código do componente PlayFabAuthenticator e salve e feche o arquivo.

Testar a autenticação do PlayFab no Photon

  1. Inicie a cena.
  2. Inspecione o fluxo de mensagens do console. Verifique se:
  3. A autenticação no próprio PlayFab teve êxito.
  4. O token do Photon foi obtido.
A imagem a seguir ilustra o fluxo correto. Iniciar a cena Depois que o token do Photon tiver sido obtido e a autenticação estiver concluída, poderemos conferir as demonstrações do Photon. Por exemplo, inicie uma demonstração chamada Demo Boxes.
  1. Para garantir que a autenticação do PlayFab esteja concluída, selecione Demo Boxes.
  2. Em seguida, selecione Load Demo, conforme mostrado na imagem a seguir.
Carregar a demonstração O Photon começa a gerar mensagens de depuração. Monitorando o console, você pode identificar facilmente se há algum problema de autenticação. Console de depuração do Photon Verifique se não há erros Authentication Denied no console. Nesse ponto, você configurou uma integração mínima entre o PlayFab e o Photon.

Evento de sala do Photon + CloudScript

O sistema de matchmaking do Photon tem o conceito de sala. Se você não estiver familiarizado com esse conceito, consulte o Guia de matchmaking do Photon. O PlayFab permite interceptar vários eventos de sala. Os seguintes eventos de sala exigem apenas o CloudScript para serem interceptados:
  • RoomCreated
  • RoomJoined
  • RoomLeft
  • RoomClosed
Os seguintes eventos exigem controle adicional sobre o código do Unity para serem interceptados (os detalhes são fornecidos mais adiante neste documento):
  • RoomPropertyUpdated
  • RoomEventRaised
Depois que você introduz um manipulador para um evento de sala, ele se torna uma parte essencial do fluxo de tratamento de eventos. Portanto, erros gerados durante a execução do seu CloudScript podem causar problemas para todo o sistema. Por exemplo, se o manipulador RoomCreated gerar um erro, seus clientes também gerarão um erro e não conseguirão se conectar corretamente.
Vamos construir um CloudScript do PlayFab definindo um manipulador para cada tipo de evento individualmente.

Manipulador Room Created

O manipulador RoomCreated é invocado sempre que uma sala do Photon é criada. O manipulador do CloudScript a seguir intercepta esses eventos.
Você pode obter mais dados sobre o evento usando o argumento “args”.

Manipulador Room Joined

O manipulador RoomJoined é invocado sempre que um jogador entra na sala. O manipulador do CloudScript a seguir intercepta esse evento.
Esse retorno de chamada não é invocado para o primeiro usuário que entra na sala. Use RoomCreated para interceptar o primeiro jogador que entra. Você pode obter mais dados sobre o evento usando o argumento “args”.

Room left

O manipulador RoomLeft é invocado sempre que um jogador sai da sala. O manipulador do CloudScript a seguir intercepta esse evento.
Você pode obter mais dados sobre o evento usando o argumento “args”.

Manipulador Room Closed

O manipulador RoomClosed é invocado sempre que o último jogador sai da sala e ela fica sem jogadores. O manipulador do CloudScript a seguir intercepta esse evento.
Você pode obter mais dados sobre o evento usando o argumento “args”.

Room Property Updated

O manipulador RoomPropertyUpdated é invocado sempre que a propriedade da sala é alterada. O manipulador do CloudScript a seguir intercepta esse evento.
O currentPlayerId é indefinido neste manipulador. Se a propriedade da sala tiver sido alterada pelo cliente, você poderá usar o argumento “args” e consultar o UserId para identificar o jogador responsável.
Você pode obter mais dados sobre o evento usando o argumento “args”.
Ao alterar propriedades personalizadas da sala usando o cliente Photon do Unity, é importante marcar a chamada para que ela passe o evento ao webhook (o PlayFab, neste caso).

Room Event Raised

O Room Event Raised é chamado sempre que um evento de sala personalizado é gerado. O manipulador do CloudScript a seguir intercepta esse evento.
Você pode obter mais dados sobre o evento usando o argumento “args”.
Ao gerar eventos de sala personalizados usando o cliente Photon do Unity, é importante marcar a chamada para que ela passe o evento aos webhooks (o PlayFab, neste caso).

Testar os manipuladores de eventos de sala

Este exemplo estende o exemplo anterior (autenticação PlayFab + Photon). Faça upload do seguinte CloudScript para o seu título.
O código não faz nada além de publicar um novo evento de título sempre que um retorno de chamada do Photon é invocado. Sem utilidade em produção, este exemplo nos permite ver claramente como os retornos de chamada são invocados. Estenda o script PlayFabAuthenticator incluindo um novo código de exemplo que gera um evento personalizado e define uma propriedade de sala personalizada. A versão estendida também usa um método Awake para não destruir o objeto entre os carregamentos de cena.
  • Execute a cena do hub e aguarde a conclusão da autenticação do PlayFab (1).
  • Em seguida, carregue a cena Boxes Demo (2).
Carregar a cena Demo Boxes
  • Quando a cena carregar, aguarde até que o par se conecte à sala recém-criada (1).
  • Em seguida, selecione Execute Example no canto superior esquerdo (2).
  • Observe a saída do console (3).
  • Verifique se nenhum erro ocorreu.
Executar o exemplo Não se esqueça de interromper a reprodução no Unity. Isso é feito para garantir que também recebamos os eventos RoomLeft e RoomClosed. Navegue até a página do Game Manager do título e observe o painel PlayStream. Você deverá ver os eventos gerados como resultado do nosso código do CloudScript que manipula os eventos do Photon.
  1. Inicialmente, nossa instância do Photon não tinha nenhuma sala aberta. Quando iniciamos o exemplo, o Photon criou a sala para o Boxes Demo.
  2. O primeiro jogador a entrar é o jogador que solicitou a sala. Portanto, nenhum RoomJoined Event foi registrado. Em seguida, executamos nosso código de exemplo:
    • Primeiro, geramos um Room Event personalizado.
    • Depois, definimos uma Room Property personalizada.
    • Em seguida, interrompemos o modo de reprodução do Unity. Isso fez com que nosso cliente saísse da sala.
  3. Como nosso cliente desconectado era o último, não há mais clientes, e o Photon fecha a sala.
Todos os eventos devem ser registrados no fluxo de eventos do PlayStream, conforme mostrado na imagem a seguir. Fluxo de eventos do PlayStream Nesse ponto, você integrou totalmente o suporte a eventos do Photon ao seu título do PlayFab.
Última modificação em 8 de outubro de 2026