Copyright (c) 2014 Google Inc. Todos os direitos reservados.
O plug-in do Google Play Games para Unity® é um projeto de código aberto cujo objetivo é fornecer um plug-in que permita aos desenvolvedores de jogos integrar-se à API do Google Play Games a partir de um jogo escrito em Unity®. No entanto, este projeto não é de forma alguma endossado ou supervisionado pela Unity Technologies.
Unity® é uma marca registrada da Unity Technologies.
iOS é uma marca comercial da Apple, Inc.
Faça download do pacote na página de lançamento do Github.
O plug-in do Google Play Games para Unity permite acessar a API do Google Play Games por meio da interface social do Unity. O plug-in oferece suporte para os seguintes recursos da API Google Play Games:
entrar
amigos
desbloquear/revelar/incrementar conquista
postar pontuação na tabela de classificação
salvar na nuvem, ler/gravar
mostrar interface de usuário integrada de conquistas/tabelas de classificação
eventos
conexões próximas
AVISO : Esta versão do plugin não suporta mais iOS. Os serviços de jogos do Google Play para iOS estão obsoletos e provavelmente não funcionarão conforme o esperado. Não use os serviços de jogos do Google Play para iOS em novos aplicativos. Consulte a postagem do blog sobre o anúncio de suspensão de uso para obter mais detalhes.
Características:
configuração fácil do projeto orientada à GUI (integrada à GUI do Unity)
não há necessidade de substituir/personalizar a atividade do player
não há necessidade de substituir/personalizar AndroidManifest.xml
Para obter instruções sobre como usar o plug-in, consulte este guia do desenvolvedor.
Para obter um exemplo de aplicativo que demonstra como usar o Google Play Games, consulte o projeto SmokeTest;
Se você já integrou seu projeto a uma versão anterior do plugin e deseja atualizar para uma nova versão, consulte as instruções de atualização.
Para acessar as APIs do Google em um servidor web back-end em nome do player atual, você precisa obter um código de autenticação do aplicativo cliente e passá-lo para o aplicativo do servidor web. Este código pode então ser trocado por um token de acesso para fazer chamadas para as diversas APIs. Para obter mais detalhes sobre este fluxo, consulte: Login do Google para sites.
Para obter o código de autenticação do servidor:
Configure o ID do cliente Web do aplicativo Web vinculado ao seu jogo no Play Game Console.
Chame PlayGamesClientConfiguration.Builder.RequestServerAuthCode(false)
ao criar a configuração.
Chame PlayGamesPlatform.Instance.GetServerAuthCode()
assim que o jogador for autenticado.
Passe esse código para seu aplicativo de servidor.
PlayGamesPlatform.Instance.RequestServerSideAccess(/* forceRefreshToken= */ false,code -> { //enviar código ao servidor});
É possível diminuir o tamanho do plug-in Unity dos serviços relacionados a jogos do Google Play removendo o código dos recursos dos serviços relacionados a jogos do Google Play que seu jogo não usa usando o Proguard. O Proguard removerá o código do plug-in Unity do Play Games para recursos que não são usados no jogo. Assim, o jogo é enviado apenas com o código necessário e minimiza o impacto do uso dos serviços relacionados a jogos do Google Play.
Além disso, é possível reduzir o tamanho de todo o projeto Unity usando o Managed Code Stripping do Unity, que compactará todo o seu projeto. Isso pode ser usado em conjunto com o Proguard.
Vá para File > Build Settings > Player Settings
e clique na seção Publishing Settings
. Escolha Proguard
para Minify > Release
. Em seguida, habilite User Proguard File
. Se você deseja que o plugin também seja programado para apks de depuração, você pode escolher Proguard
for Minify > Debug
.
Copie o conteúdo da configuração do proguard em Assets/Plugins/Android/proguard-user.txt
.
Quando você chama PlayGamesPlatform.Activate
, o Google Play Games se torna sua implementação de plataforma social padrão, o que significa que chamadas estáticas para métodos em Social
e Social.Active
serão realizadas pelo plug-in do Google Play Games. Este é o comportamento desejado para a maioria dos jogos que usam o plugin.
No entanto, se por algum motivo você quiser manter a implementação padrão acessível (por exemplo, para usá-la para enviar conquistas e placares para uma plataforma social diferente), você poderá usar o plug-in do Google Play Games sem substituir o plug-in padrão. Para fazer isso:
Não chame PlayGamesPlatform.Activate
Se Xyz
for o nome de um método que você deseja chamar na classe Social
, não chame Social.Xyz
. Em vez disso, chame PlayGamesPlatform.Instance.Xyz
Não use Social.Active
ao interagir com o Google Play Games. Em vez disso, use PlayGamesPlatform.Instance
.
Dessa forma, você pode até enviar pontuações e conquistas simultaneamente para duas ou mais plataformas sociais:
// Envia a conquista para a plataforma social padrão originalSocial.ReportProgress("MyAchievementIdHere", 100.0f, callback); // Envia a conquista para o Google PlayPlayGamesPlatform.Instance.ReportProgress("MyGooglePlayAchievementIdHere", 100.0f, callback);
Esta seção lista pessoas que contribuíram para este projeto escrevendo código, melhorando a documentação ou corrigindo bugs.
Dgizusse por descobrir que a configuração JAVA_HOME é necessária no Windows.
antonlicht por corrigir um bug com o tipo de parâmetro showErrorDialog na biblioteca de suporte.
pR0Ps para corrigir um problema em que OnAchievementsLoaded não aceitava um código de resultado OPERATION_DEFERRED como um sucesso.
friikyeu por ajudar a depurar um problema que fazia com que as chamadas de API fossem colocadas na fila em vez de executadas mesmo quando conectadas.