[TUTORIAL] - Como fazer download da OBB do jogo, in-game! (Android)
+2
MarcosSchultz
marcos4503
6 participantes
Página 1 de 1
[TUTORIAL] - Como fazer download da OBB do jogo, in-game! (Android)
Oi, hoje vou ensinar uma coisa muito útil, que é o download in-game do arquivo OBB do seu jogo. Antes de começar, vocês devem ter em mente algumas coisas sobre o arquivo OBB, então vamos lá.
Versão da Unity recomendada: 2017.1 ou superior
- O APK possui TODOS os scripts do seu jogo e os arquivos necessarios para rodar a primeira cena
- O OBB possui todos os arquivos que não estão na primeira cena
- O seu jogo DEVE ter um arquivo OBB se for maior do que 100MB. É uma regra da Google Play
Você tambem já deve ter tido aquele velho problema de quando baixa o seu jogo da Google Play, ele simplesmente não carrega e fica travado na primeira cena. Isso acontece porque as vezes o APK baixado da Google Play não consegue encontrar o arquivo OBB. Neste tutorial você vai aprender a solucionar isso.
Lembre-se: Este tutorial só vai servir se você possui uma conta de desenvolvedor da Google Play.
Bom. Antes de começar, você deve configurar a Unity para gerar arquivos OBB quando você compila seu projeto. Para isso, vá até "File" > "Build Settings" > "Player Settings" > Na aba inspector, vá até "Publishing Settings" > Marque a caixa "Split Application Binary". Feito isso, a Unity já vai gerar seu arquivo OBB, sempre que você compilar.
Agora vamos ao que interessa. Nós vamos usar um plugin da propria Unity, o "Google Play OBB Downloader". Ele pode ser baixado por aqui:
https://www.assetstore.unity3d.com/en/#!/content/3189
Baixe-o e importe para seu projeto.
Vamos então ao passo a passo:
Vá até seu console de desenvolvimento do Google Play, selecione o aplicativo desejado.
Vá até a aba "Ferramentas de desenvolvimento"
Vá até "Serviços e APIs"
Procure por "Sua chave de licença para este app"
Logo abaixo disso você vai ver um código enorme com varias letras e numeros aleatórios. Esse é sua chave publica RSA Base64, ela é usada para interligar seu APK com a Google. Copie-a.
Vá até a Unity, e procure pela pasta "Plugins" em seu projeto
Em seguida vá até a pasta "Android"
Abra o script C# "GooglePlayDownloader"
No script, procure por essa linha:
Substitua o "REPLACE THIS WITH YOUR PUBLIC KEY" pela sua chave RSA Base64. Certifique-se de que ela esteja realmente correta e que não tenha nenhum espaço ou algo assim.
Pronto! O Plugin em si, já está checando o arquivo OBB. Agora, o seu APK já consegue buscar pelo arquivo, mais ainda não acabamos.
Ok. Isso é relativamente simples. Tudo que vamos precisar é de algumas linhas de código. Aqui esta:
Você pode colar isso na void Start de algum script que fica na sua primeira cena. Lembre-se que isso deve ficar na sua primeira cena, porque ela SEMPRE vai estar no seu APK, independente que você tenha dividido em OBB ou não.
Você tambem pode incrementar esse script e fazer as alterações de acordo com o que você queira. Eu passei somente o necessario para você baixar seu OBB.
Alguns detalhes adicionais:
- O download da OBB só funciona se o seu jogador tiver baixado o APK(Jogo) direto da Google Play. Isso é apenas uma forma de evitar a pirataria do OBB.
- Como já disse acima, este plugin corrige o bug das cenas restantes não carregarem, quando se tem uma OBB.
Faça seus testes e se tiver algum problema é só falar por aqui! Até mais!
Versão da Unity recomendada: 2017.1 ou superior
- O APK possui TODOS os scripts do seu jogo e os arquivos necessarios para rodar a primeira cena
- O OBB possui todos os arquivos que não estão na primeira cena
- O seu jogo DEVE ter um arquivo OBB se for maior do que 100MB. É uma regra da Google Play
Você tambem já deve ter tido aquele velho problema de quando baixa o seu jogo da Google Play, ele simplesmente não carrega e fica travado na primeira cena. Isso acontece porque as vezes o APK baixado da Google Play não consegue encontrar o arquivo OBB. Neste tutorial você vai aprender a solucionar isso.
Lembre-se: Este tutorial só vai servir se você possui uma conta de desenvolvedor da Google Play.
Bom. Antes de começar, você deve configurar a Unity para gerar arquivos OBB quando você compila seu projeto. Para isso, vá até "File" > "Build Settings" > "Player Settings" > Na aba inspector, vá até "Publishing Settings" > Marque a caixa "Split Application Binary". Feito isso, a Unity já vai gerar seu arquivo OBB, sempre que você compilar.
Agora vamos ao que interessa. Nós vamos usar um plugin da propria Unity, o "Google Play OBB Downloader". Ele pode ser baixado por aqui:
https://www.assetstore.unity3d.com/en/#!/content/3189
Baixe-o e importe para seu projeto.
Vamos então ao passo a passo:
CONFIGURAÇÃO DO PLUGIN
Vá até seu console de desenvolvimento do Google Play, selecione o aplicativo desejado.
Vá até a aba "Ferramentas de desenvolvimento"
Vá até "Serviços e APIs"
Procure por "Sua chave de licença para este app"
Logo abaixo disso você vai ver um código enorme com varias letras e numeros aleatórios. Esse é sua chave publica RSA Base64, ela é usada para interligar seu APK com a Google. Copie-a.
Vá até a Unity, e procure pela pasta "Plugins" em seu projeto
Em seguida vá até a pasta "Android"
Abra o script C# "GooglePlayDownloader"
No script, procure por essa linha:
- Código:
using (AndroidJavaClass dl_service = new AndroidJavaClass("com.unity3d.plugin.downloader.UnityDownloaderService"))
{
// stuff for LVL -- MODIFY FOR YOUR APPLICATION!
dl_service.SetStatic("BASE64_PUBLIC_KEY", "REPLACE THIS WITH YOUR PUBLIC KEY");
// used by the preference obfuscater
dl_service.SetStatic("SALT", new byte[]{1, 43, 256-12, 256-1, 54, 98, 256-100, 256-12, 43, 2, 256-8, 256-4, 9, 5, 256-106, 256-108, 256-33, 45, 256-1, 84});
}
Substitua o "REPLACE THIS WITH YOUR PUBLIC KEY" pela sua chave RSA Base64. Certifique-se de que ela esteja realmente correta e que não tenha nenhum espaço ou algo assim.
Pronto! O Plugin em si, já está checando o arquivo OBB. Agora, o seu APK já consegue buscar pelo arquivo, mais ainda não acabamos.
VERIFICANDO SE A INTEGRIDADE DA OBB E EXECUTANDO SEU DOWNLOAD
Ok. Isso é relativamente simples. Tudo que vamos precisar é de algumas linhas de código. Aqui esta:
- Código:
if (Application.platform == RuntimePlatform.Android == true) //Aqui verificamos se esta sendo rodado num dispositivo Android, se sim, a verificação é rodada
{
Memoria = GooglePlayDownloader.GetExpansionFilePath(); //Aqui pegamos o local da memoria, pelo plugin
LocalOBB = GooglePlayDownloader.GetMainOBBPath(Memoria); //Aqui pegamos o diretorio do arquivo OBB
LocalPasta = GooglePlayDownloader.GetPatchOBBPath(Memoria); //Aqui pegamos o local da pasta do arquivo OBB
if(LocalOBB == null) //Se o local da OBB for nulo, quer dizer que o arquivo não existe, então é chamado o assistente de download do plugin e o download da OBB começa.
{
GooglePlayDownloader.FetchOBB(); //Esse é o metodo usado para chamar o assistente de download do plugin.
}
}
if (Application.platform == RuntimePlatform.Android == false) //Se não esta sendo rodado num android, apenas é ignorado esse processo. Isso é útil pra não dar erro no Editor.
{
Memoria = ("Memoria teste"); //Se esta sendo executado fora do Android, então apenas colocamos isso na variavel, porque é apenas um teste.
LocalOBB = ("Memoria teste"); //Se esta sendo executado fora do Android, então apenas colocamos isso na variavel, porque é apenas um teste.
LocalPasta = ("Memoria teste"); //Se esta sendo executado fora do Android, então apenas colocamos isso na variavel, porque é apenas um teste.
}
Você pode colar isso na void Start de algum script que fica na sua primeira cena. Lembre-se que isso deve ficar na sua primeira cena, porque ela SEMPRE vai estar no seu APK, independente que você tenha dividido em OBB ou não.
Você tambem pode incrementar esse script e fazer as alterações de acordo com o que você queira. Eu passei somente o necessario para você baixar seu OBB.
Alguns detalhes adicionais:
- O download da OBB só funciona se o seu jogador tiver baixado o APK(Jogo) direto da Google Play. Isso é apenas uma forma de evitar a pirataria do OBB.
- Como já disse acima, este plugin corrige o bug das cenas restantes não carregarem, quando se tem uma OBB.
Faça seus testes e se tiver algum problema é só falar por aqui! Até mais!
Re: [TUTORIAL] - Como fazer download da OBB do jogo, in-game! (Android)
Nossa, estou vendo cada vez mais como criar estas áreas de mobile e C# era EXTREMAMENTE necessário...
Até agora, só novidades... cheio de coisas que eu nunca tinha visto antes.
Até agora, só novidades... cheio de coisas que eu nunca tinha visto antes.
Re: [TUTORIAL] - Como fazer download da OBB do jogo, in-game! (Android)
Realmente! Essas areas vão ser muito uteis :D :D :D :D
Re: [TUTORIAL] - Como fazer download da OBB do jogo, in-game! (Android)
marcos4503 escreveu:Oi, hoje vou ensinar uma coisa muito útil, que é o download in-game do arquivo OBB do seu jogo. Antes de começar, vocês devem ter em mente algumas coisas sobre o arquivo OBB, então vamos lá.
Versão da Unity recomendada: 2017.1 ou superior
- O APK possui TODOS os scripts do seu jogo e os arquivos necessarios para rodar a primeira cena
- O OBB possui todos os arquivos que não estão na primeira cena
- O seu jogo DEVE ter um arquivo OBB se for maior do que 100MB. É uma regra da Google Play
Você tambem já deve ter tido aquele velho problema de quando baixa o seu jogo da Google Play, ele simplesmente não carrega e fica travado na primeira cena. Isso acontece porque as vezes o APK baixado da Google Play não consegue encontrar o arquivo OBB. Neste tutorial você vai aprender a solucionar isso.
Lembre-se: Este tutorial só vai servir se você possui uma conta de desenvolvedor da Google Play.
Bom. Antes de começar, você deve configurar a Unity para gerar arquivos OBB quando você compila seu projeto. Para isso, vá até "File" > "Build Settings" > "Player Settings" > Na aba inspector, vá até "Publishing Settings" > Marque a caixa "Split Application Binary". Feito isso, a Unity já vai gerar seu arquivo OBB, sempre que você compilar.
Agora vamos ao que interessa. Nós vamos usar um plugin da propria Unity, o "Google Play OBB Downloader". Ele pode ser baixado por aqui:
https://www.assetstore.unity3d.com/en/#!/content/3189
Baixe-o e importe para seu projeto.
Vamos então ao passo a passo:CONFIGURAÇÃO DO PLUGIN
Vá até seu console de desenvolvimento do Google Play, selecione o aplicativo desejado.
Vá até a aba "Ferramentas de desenvolvimento"
Vá até "Serviços e APIs"
Procure por "Sua chave de licença para este app"
Logo abaixo disso você vai ver um código enorme com varias letras e numeros aleatórios. Esse é sua chave publica RSA Base64, ela é usada para interligar seu APK com a Google. Copie-a.
Vá até a Unity, e procure pela pasta "Plugins" em seu projeto
Em seguida vá até a pasta "Android"
Abra o script C# "GooglePlayDownloader"
No script, procure por essa linha:
- Código:
using (AndroidJavaClass dl_service = new AndroidJavaClass("com.unity3d.plugin.downloader.UnityDownloaderService"))
{
// stuff for LVL -- MODIFY FOR YOUR APPLICATION!
dl_service.SetStatic("BASE64_PUBLIC_KEY", "REPLACE THIS WITH YOUR PUBLIC KEY");
// used by the preference obfuscater
dl_service.SetStatic("SALT", new byte[]{1, 43, 256-12, 256-1, 54, 98, 256-100, 256-12, 43, 2, 256-8, 256-4, 9, 5, 256-106, 256-108, 256-33, 45, 256-1, 84});
}
Substitua o "REPLACE THIS WITH YOUR PUBLIC KEY" pela sua chave RSA Base64. Certifique-se de que ela esteja realmente correta e que não tenha nenhum espaço ou algo assim.
Pronto! O Plugin em si, já está checando o arquivo OBB. Agora, o seu APK já consegue buscar pelo arquivo, mais ainda não acabamos.VERIFICANDO SE A INTEGRIDADE DA OBB E EXECUTANDO SEU DOWNLOAD
Ok. Isso é relativamente simples. Tudo que vamos precisar é de algumas linhas de código. Aqui esta:
- Código:
if (Application.platform == RuntimePlatform.Android == true) //Aqui verificamos se esta sendo rodado num dispositivo Android, se sim, a verificação é rodada
{
Memoria = GooglePlayDownloader.GetExpansionFilePath(); //Aqui pegamos o local da memoria, pelo plugin
LocalOBB = GooglePlayDownloader.GetMainOBBPath(Memoria); //Aqui pegamos o diretorio do arquivo OBB
LocalPasta = GooglePlayDownloader.GetPatchOBBPath(Memoria); //Aqui pegamos o local da pasta do arquivo OBB
if(LocalOBB == null) //Se o local da OBB for nulo, quer dizer que o arquivo não existe, então é chamado o assistente de download do plugin e o download da OBB começa.
{
GooglePlayDownloader.FetchOBB(); //Esse é o metodo usado para chamar o assistente de download do plugin.
}
}
if (Application.platform == RuntimePlatform.Android == false) //Se não esta sendo rodado num android, apenas é ignorado esse processo. Isso é útil pra não dar erro no Editor.
{
Memoria = ("Memoria teste"); //Se esta sendo executado fora do Android, então apenas colocamos isso na variavel, porque é apenas um teste.
LocalOBB = ("Memoria teste"); //Se esta sendo executado fora do Android, então apenas colocamos isso na variavel, porque é apenas um teste.
LocalPasta = ("Memoria teste"); //Se esta sendo executado fora do Android, então apenas colocamos isso na variavel, porque é apenas um teste.
}
Você pode colar isso na void Start de algum script que fica na sua primeira cena. Lembre-se que isso deve ficar na sua primeira cena, porque ela SEMPRE vai estar no seu APK, independente que você tenha dividido em OBB ou não.
Você tambem pode incrementar esse script e fazer as alterações de acordo com o que você queira. Eu passei somente o necessario para você baixar seu OBB.
Alguns detalhes adicionais:
- O download da OBB só funciona se o seu jogador tiver baixado o APK(Jogo) direto da Google Play. Isso é apenas uma forma de evitar a pirataria do OBB.
- Como já disse acima, este plugin corrige o bug das cenas restantes não carregarem, quando se tem uma OBB.
Faça seus testes e se tiver algum problema é só falar por aqui! Até mais!
Já implementei e farei os testes com a atualização.
São coisas que realmente não pensei em passar, apesar disso tudo é sempre bom passar por isso e melhorar cada dia mais
Muito obrigado
ubroly- Iniciante
- PONTOS : 3110
REPUTAÇÃO : 1
Respeito as regras :
Re: [TUTORIAL] - Como fazer download da OBB do jogo, in-game! (Android)
Olá, esse asset ele abre uma outra aba para realizar o DownLoad teria como fazer o DownLoad dentro do próprio jogo?
Duarte- Programador
- PONTOS : 3353
REPUTAÇÃO : 97
Idade : 24
Áreas de atuação : Programação
Desenvolvedor Android
Respeito as regras :
Re: [TUTORIAL] - Como fazer download da OBB do jogo, in-game! (Android)
Ele pausa o jogo e inicia um novo processo que permite o seu jogo baixar a obb mesmo enquanto o jogo esta minimizado. Durante o download seu jogo não roda e tudo que é possivel fazer é pausa, cancelar ou resumir seu download atraves de uma interface bem simples. Quando o download acaba a pessoa é notificada e o jogo ja podera ser jogado!
Re: [TUTORIAL] - Como fazer download da OBB do jogo, in-game! (Android)
show, tem um monte de coisas que eu nao sabia, obrigado
googolepton- Avançado
- PONTOS : 2790
REPUTAÇÃO : 38
Respeito as regras :
Re: [TUTORIAL] - Como fazer download da OBB do jogo, in-game! (Android)
Oi eu te mandei uma mensagem privada sobre isso por favor confere aímarcos4503 escreveu:Oi, hoje vou ensinar uma coisa muito útil
Até mais!
Tópicos semelhantes
» [TUTORIAL] Como fazer controle em TERCEIRA PESSOA para seu personagem no ANDROID!
» [pedido de tutorial] como fazer um jogo 2d
» [TUTORIAL] Como fazer o registro completo do seu jogo
» [TUTORIAL] Como Fazer (Arma e Bala) Para Jogo De FPS
» Alguém sabe algum tutorial que ensine como fazer um jogo nesse estilo?
» [pedido de tutorial] como fazer um jogo 2d
» [TUTORIAL] Como fazer o registro completo do seu jogo
» [TUTORIAL] Como Fazer (Arma e Bala) Para Jogo De FPS
» Alguém sabe algum tutorial que ensine como fazer um jogo nesse estilo?
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos