Este documento orienta você a configurar seu projeto do Unity para usar o plug-in do Google Play Games para Unity. Você vai aprender a instalar o plug-in e configurar seu projeto do Unity. O documento também aborda como verificar o serviço de login.
Antes de começar
Revise os requisitos do software. Configure o Play Console e instale o Unity Hub.
Configure o Play Console para o jogo.
Instale o Unity Hub e crie seu jogo no Unity.
Instalação do plug-in
Para fazer o download e instalar o plug-in do Google Play Games para Unity, siga estas etapas no Unity Hub:
Faça o download do repositório do GitHub.
No diretório
current-build
, localize o arquivounitypackage
. Esse arquivo representa o plug-in. Por exemplo, ele vai ter esta aparência:current-build/GooglePlayGamesPluginForUnity-X.YY.ZZ.unitypackage
Configurar o projeto do Unity
Para configurar um projeto do Unity nas configurações do player, siga estas etapas:
Abra o projeto do jogo.
No Unity Hub, clique em Assets > Import Package > Custom Package para importar o arquivo
unitypackage
para os recursos do projeto.Confira se a plataforma de build atual está definida como Android.
No menu principal, clique em File > Build Settings.
Selecione Android e clique em Switch Platform.
Um novo item de menu vai aparecer em Window > Google Play Games. Se isso não acontecer, clique em Assets > Refresh para atualizar os recursos e tente definir a plataforma de build novamente.
No Unity Hub, clique em File > Build Settings > Player Settings > Other Settings.
Na caixa Nível da API de destino, selecione uma versão.
Na caixa Scripting backend, digite
IL2CPP
.Na caixa Arquiteturas de destino, selecione um valor.
Anote o nome do pacote package_name.Você poderá usar essas informações mais tarde.
Criar um novo repositório de chaves
Para validar suas credenciais, você precisa de uma chave. Siga estas etapas:
- No Unity Hub, clique em File > Build settings > Player settings.
- Na seção Configurações de publicação, clique em Gerenciador de chaves.
- Na janela Gerenciador de chaves, clique em Chaves > Criar novo > Em qualquer lugar.
- Selecione uma pasta e informe um nome para o keystore.
- Na caixa Senha, digite uma senha e confirme.
- Clique em Adicionar chave.
Anote o nome da pasta. É possível usar esse nome para criar uma credencial no Google Cloud.
Copiar os recursos do Android do Play Console
Cada conquista, placar e evento criado no Play Console inclui um recurso do Android que você usa ao configurar seu projeto do Unity.
Para acessar os recursos do Android para seu jogo, siga estas etapas:
No Google Play Console, abra o jogo.
Na página Configuração dos Serviços relacionados a jogos do Google Play (Crescimento > Serviços relacionados a jogos do Google Play > Configuração e gerenciamento > Configuração), clique em Pegar recursos.
Na janela Resources, clique na guia Android(XML).
Selecione e copie o conteúdo dos recursos do Android (
AndroidManifest.xml
).
Adicionar os recursos do Android ao projeto do Unity
Adicione os seguintes recursos do Android ao seu projeto do Unity:
No Unity Hub, clique em Window > Google Play Games > Setup > Android Setup.
- No campo Directory to save constants, insira o nome da pasta do arquivo de constantes.
No campo Constants class name, digite o nome da classe C# a ser criada, incluindo o namespace.
Por exemplo, se a classe C# for
id.cs
e estiver presente em Assets > myproject > scripts > id.cs. O nome da classe de constantes pode sermyproject.scripts.id
.No campo Resources definition, cole os dados de recursos do Android (arquivo
AndroidManifest.xml
) que você copiou do Google Play Console.Opcional: no campo ID do cliente, insira o ID do cliente do app da Web vinculado.
Para conferir o ID do cliente do seu jogo no Google Cloud, consulte Como criar IDs do cliente.
Isso só será necessário se você tiver um back-end baseado na Web para o jogo e precisar que o código de autenticação do servidor seja trocado por um token de acesso pelo servidor de back-end ou se você precisar de um token de ID para o jogador fazer outras chamadas de API fora do jogo.
Clique em Setup. O jogo vai ser configurado com o ID do cliente e uma classe C# vai ser gerada com constantes para cada recurso do Android.
No Unity Hub, clique em Window > Google Play Games > Setup > Nearby Connections Setup.
No campo ID do serviço de conexão nas proximidades, insira o package_name.
Use o mesmo package_name usado em configurar o projeto do Unity.
Clique em Setup.
Escolher uma plataforma social
O plug-in do Google Play Games Services implementa a interface social (link em inglês) do Unity para oferecer compatibilidade com jogos que já usam essa interface na integração com outras plataformas. No entanto, alguns recursos são exclusivos do Play Games e oferecidos como extensões da interface social padrão fornecida pelo Unity.
As chamadas de API padrão podem ser acessadas no objeto Social.Active, que é uma referência a uma interface ISocialPlatform. As extensões não padrão dos serviços do Google Play Games podem ser acessadas ao transmitir o objeto Social.Active para a classe PlayGamesPlatform, em que os outros métodos estão disponíveis.
Usar o plug-in sem substituir a plataforma social padrão
Quando você chama PlayGamesPlatform.Activate
, os serviços relacionados a jogos do Google Play se tornam a
implementação de plataforma social padrão, ou seja, chamadas estáticas para métodos
em Social
e Social.Active
são realizadas pelo plug-in do
Google Play Games Services. Esse é o comportamento da maioria dos jogos que usam o plug-in.
No entanto, se por algum motivo você quiser manter a implementação padrão acessível (por exemplo, para enviar conquistas e placares a uma plataforma social diferente), use o plug-in do Google Play Games sem substituir a configuração padrão. Para fazer isto:
- Não ligar para
PlayGamesPlatform.Activate
- Se
Xyz
for o nome de um método que você precisa chamar na classeSocial
, não chameSocial.Xyz
. Em vez disso, chamePlayGamesPlatform.Instance.Xyz
. - Não use
Social.Active
ao interagir com os Serviços do Google Play Games. Em vez disso, usePlayGamesPlatform.Instance
.
Dessa forma, é possível até enviar pontuações e conquistas simultaneamente a duas ou mais plataformas sociais:
// Submit achievement to original default social platform
Social.ReportProgress("MyAchievementIdHere", 100.0f, callback);
// Submit achievement to Google Play
PlayGamesPlatform.Instance.ReportProgress("MyGooglePlayAchievementIdHere", 100.0f, callback);
Verificar o serviço de login
Uma conexão com os serviços relacionados a jogos do Google Play é automaticamente estabelecida usando o serviço de login quando o jogo é aberto. Se a conexão for bem-sucedida, seu jogo vai mostrar uma solicitação de login e vai estar pronto para usar o plug-in dos Serviços relacionados a jogos do Google Play para Unity.
Se um usuário nunca tiver usado os Serviços relacionados a jogos do Google Play no dispositivo, ele será direcionado automaticamente à tela de configuração única para criar uma conta do Play Games.
No método Start
do seu script, detecte o resultado da tentativa de
login automático, busque o status de autenticação e desative os recursos dos serviços relacionados
a jogos do Google Play, caso o usuário não tenha feito login.
Se a versão do plug-in do Unity for anterior a v11
, não será possível usar o recurso de
login.
using GooglePlayGames;
public void Start() {
PlayGamesPlatform.Instance.Authenticate(ProcessAuthentication);
}
internal void ProcessAuthentication(SignInStatus status) {
if (status == SignInStatus.Success) {
// Continue with Play Games Services
} else {
// Disable your integration with Play Games Services or show a login button
// to ask users to sign-in. Clicking it should call
// PlayGamesPlatform.Instance.ManuallyAuthenticate(ProcessAuthentication).
}
}
O código de resultado é uma enumeração que pode ser usada para identificar o motivo da falha de login.
Como alternativa, se você preferir usar a plataforma social do Unity, utilize o código abaixo:
using GooglePlayGames;
public void Start() {
PlayGamesPlatform.Activate();
Social.localUser.Authenticate(ProcessAuthentication);
}
Não é possível fazer chamadas da API Google Play Games Services até receber um valor
de retorno bem-sucedido de Authenticate
. Como resultado, recomendamos que os jogos mostrem uma
tela de espera até que o callback seja chamado para garantir que os usuários não possam começar a jogar
até que a autenticação seja concluída.
Usar a Assinatura de apps do Google Play
O Google gerencia e protege a chave de assinatura do app usando a Assinatura de apps do Google Play. É possível usar a Assinatura de app do Google Play para assinar a distribuição otimizada de arquivos Android App Bundle(AAB). A Assinatura de apps do Google Play armazena sua chave de assinatura do app na infraestrutura segura do Google. Para usar a Assinatura de apps do Google Play, primeiro é necessário criar e fazer o download de um arquivo AAB no Unity Hub. Em seguida, faça upload do arquivo AAB para o Play Console e crie uma versão de teste interno.
Criar um arquivo AAB
Para criar um arquivo AAB no Unity Hub, siga estas etapas:
- No Unity Hub, clique em File > Build settings.
Selecione Build App Bundle ( Google Play ).
Para mais informações, consulte Referência de configurações de build do Android.
Clique em Build.
Faça o download do arquivo AAB no Unity Hub.
Criar uma versão de teste interno
Para criar uma versão de teste interno e adicionar testadores no Play Console, siga estas etapas:
- No Google Play Console, selecione um jogo.
- Acesse a página Testar e lançar (Teste > Teste interno).
- Clique em Fazer upload e selecione o arquivo AAB.
- No campo Detalhes da versão, insira um nome.
- Clique em Próxima e revise os detalhes do lançamento.
- Clique em Salvar e publicar.
Na guia Testadores, clique em Criar lista de e-mails para adicionar até 100 testadores.
Para mais informações, consulte Teste interno: gerencie até 100 testadores.
Em Endereço de e-mail ou URL de feedback, insira um URL ou endereço de e-mail para enviar feedback.
Clique em Salvar.
Verificar as credenciais de assinatura do app
- No Google Play Console, selecione um jogo.
- Navegue até a página Testar e lançar (Configuração > Assinatura de apps).
- Verifique as credenciais de assinatura do app.
Criar e executar o projeto
Você pode criar e executar o projeto do jogo neste momento. Quando o jogo começar, você vai notar a tentativa de login automático.
Você precisa de um dispositivo físico com Android e depuração USB ativada ou um emulador que possa executar o projeto desenvolvido.
Extrair códigos de autenticação do servidor
Para acessar as APIs do Google em um servidor da Web de back-end em nome do jogador atual, você precisa receber um código de autenticação do aplicativo cliente e fazer a transmissão ao aplicativo do servidor da Web. Depois disso, o código pode ser trocado por um token de acesso para fazer chamadas para as várias APIs. Para saber mais sobre o fluxo de trabalho, consulte Fazer login com o Google para Web.
Para receber o código de acesso do lado do servidor:
Configure o ID do cliente da Web do aplicativo da Web vinculado ao seu jogo no Play Console.
Chame
PlayGamesPlatform.Instance.RequestServerSideAccess
assim que o jogador for autenticado para receber o código de acesso do lado do servidor.Transmita esse código para o aplicativo do servidor.
PlayGamesPlatform.Instance.RequestServerSideAccess(
/* forceRefreshToken= */ false,
code -> {
// send code to server
});
Configurar e adicionar recursos
Ative os recursos dos serviços relacionados a jogos do Google Play.
Adicione recursos ao seu jogo usando as APIs dos serviços relacionados a jogos do Google Play:
API Recall para Unity (oferece suporte apenas para a versão v11 e mais recentes do plug-in do Unity)