Solucionado (ver solução)
Solucionado
(ver solução)
22
respostas

Erro ao publicar no itch.io- barra de vida, dano e luz

Terminei a parte 3 do curso de Jogos com Unity 3D (o de zumbi) e ao publicar o jogo na itch.io alguns erros acontecem. Aqui na Unity roda tudo bonitinho.

Os problemas são:

  • Na Slider da barra de vida, a parte do Fill (verde) não aparece. O Background do Slider já está atrás do Fill na coordenada Z;
  • Quando o zumbi me ataca o jogo trava e aparece uma mensagem de erro;
  • A luz do jogo fica zoada. Já tentei recalcular a luz antes de fazer o build, mas não funcionou;
  • Parece que o zumbi não fica com a coordenada Y travada.

Aqui está o link para o jogo (ainda com erro) no itch.io: https://david-teixeira-taveira.itch.io/socorro-os-zumbis Aqui está o link do projeto da Unity: https://drive.google.com/drive/folders/1OGmDh2cmW7zXhe-RiSDj1vUlC5mDYfsB?usp=sharing

22 respostas

Oi, David, tudo bem?

Só pra ter certeza você já desativou a compressão do build certo?

Alguns que consigo dar uma resposta rápida:

  • Infelizmente a luz em webgl é meio mais ou menos mesmo o ideal é dar um bake de luz e não usar luz dinâmica
  • O zumbi parece estar rotacionando quando está perto da personagem talvez eles estejam em alturas diferentes e teríamos que calcular essa diferença, logo dou uma olhada no projeto

Vou conferir essas coisas que você falou. Não tenho certeza sobre a compressão. obrigado!

A Unity mudou os padrões nas últimas versões o padrão.

Na hora de fazer o Build nas opções em "Player Settings" vá até a opção "Publishing Settings" tente alterar o Compression Format para "Disabled".

Veja se isso soluciona o problema.

Oi professor.

Eu conferi se a compressão estava desabilitada e estava sim. Também fui no script para ver se o zumbi estava no mesmo y do jogador e estão sim. Testei o jogo novamente na internet e continua com os mesmos erros...

Oi, David, dei uma olhada aqui vamo lá:

  • Sobre a slider o background tá frente troca o Z para negativo assim ela fica atrás, isso deve resolver o problema.
  • Sobre a luz você pode trocar o modo da directional light para Baked e calcular a luz com bake, não vai ter luz dinâmica mas vai ficar bem mais leve o jogo. O mesmo vale para as outras luzes talvez seja melhor não ter sombra mesmo acho que como tem muita iluminação pode estar pesando um pouco.

Acho que isso deve resolver os problemas, mas se faltar algum me avisa :)

Oi. Fiz as modificações que você falou e não resolveram o problema. A luz até ficou um pouco melhor, mas esse nem é o problema principal, que é travar.

Sobre o y do Zumbi ficar meio doido eu resolvi explicitando no código que a posição seria com y =0. Isso funcionou.

No entanto ainda dá um erro quando os zumbis e os chefes atacam e a barra de vida continua vermelha.

Mesmo trocando o Z do background ele continua aparecendo errado?

Acho que me confundi, o background tem que ficar positivo e a imagem positiva. Nas ultimas versões a ordem de renderização é baseada na ordem da hierarquia, foi mal nem perguntei que versão você estava usando, mas deve ser acima de 2020 certo?

Mas pelo que me lembre o seu background tava antes do Fill Area então já estava certo. Você já tentou atualizar a versão da Unity?

Pois é.

Testei com o background antes e depois... e voltei pro que seria o certo.

Atualizei sim, duas vezes. Agora estou na versão 2021.2.9f1. Refiz algumas aulas antigas para ver se eu tinha esquecido algo mas até agora está tudo direitinho. Refiz a slider também e deu no mesmo. Acabei até melhorando outras funcionalidades do jogo. rsrs vou mandar o link de como está agora. Link: https://drive.google.com/file/d/1HgSO5jMlXPLSrEqcW1ndmFT5LLCSTyRr/view?usp=sharing

Eu dei uma desistida depois de tentar tudo que consegui pensar. Aqui na Unity roda tudo bonito. Será que é algo externo à Unity? Como o site, ou eu tenho que atualizar algo aleatório do windows...

Vou fazer a parte 4 do curso e no fim ver se as mudanças do próprio curso corrigem o erro, já que ele surgiu do nada. No caso o erro de travar quando o jogador é atacado.

Eu chutaria que é algum problema do build em webgl, já tentou buildar pra pc e ver se tem esse mesmo problema?

Testei fazer a build para pc e mudou o problema.

Agora a barra de vida está verde e a luz está boa. Mas o jogador não toma dano e não pega o kit médico, apesar de pegar uma estátua que criei com o código praticamente igual ao do kit médico... Percebi que os zumbis seguem a mira do jogador e não o jogador em si.

Esqueci de mencionar que recebi essa mensagem de aviso da Unity, aquela com o triângulo amarelo com a exclamação.

Unable to find player assembly: C:\Users\CLAUDIO\Documents\BKP_22_10\Back Up\Cursos\Alura\Unity\Inicio\apocalipse-zumbi-alura\Temp\StagingArea\Data\Managed\UnityEngine.TestRunner.dll UnityEngine.Debug:LogWarning (object) Unity.Burst.Editor.BurstAotCompiler:OnPostBuildPlayerScriptDLLsImpl (UnityEditor.Build.Reporting.BuildReport) (at Library/PackageCache/com.unity.burst@1.6.3/Editor/BurstAotCompiler.cs:340) Unity.Burst.Editor.BurstAotCompiler:OnPostBuildPlayerScriptDLLs (UnityEditor.Build.Reporting.BuildReport) (at Library/PackageCache/com.unity.burst@1.6.3/Editor/BurstAotCompiler.cs:208) UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&)

Como assim a mira do Jogador? Aquele objeto vazio só pra marcar a posição?

Confere se ele não tá com a tag 'Jogador'

Me expressei mal, mas pelo que você falou eu entendi esse problema. o Zumbi segue a ponta do cano da arma. Lembrei que coloquei um objeto na ponta do cano para a arma não atravessar as paredes. Esse objeto estava com a tag Jogador. Agora o zumbi anda direito. Mas ainda não da dano.

Acontece algum erro quando o zumbi bate ou simplesmente nada acontece?

Com a WebGl da erro e trava o jogo quando o inimigo (zumbi e chefe) ataca. Com a build para Windows nada acontece quando o inimigo ataca.

Pode subir seu projeto atualizado novamente?

Sim. Está compactando e já te mando.

Link para o projeto no estado atual https://drive.google.com/file/d/1XjwzZjFLckUgvD9ouX-229ZHv2LF08tA/view?usp=sharing

solução!

Fala, David, tudo bem?

Vou te falar o que fiz só pra que da próxima vez fique mais fácil de você debugar, eu buildei o projeto como Developer Build porque aí você pode ver os logs e o console.

E lá aparecia um erro de NullReference no script de AtacaJogador na linha 92 que é a linha que pega o componente do Jogador.

Então imaginei que não estava pegando o jogador corretamente e dei alguns Debug.Log com o objeto no Start e buildei novamente, assim eu pude ver que dentro do jogador tem a Root_jnt e ela também estava com a Tag jogador, então no build estava pegando esse objeto ao invés do personagem mas na Unity ele pegava o objeto Jogador. Essa diferença de ordem de carregamento entre o build e a Unity pode acontecer.

Depois de tirar a tag desse objeto e deixar somente no Jogador ficou tudo certo.

Tirou onda professor. Era realmente isso que estava dando problema! Eu já estava meio maluco relendo pela centésima vez os scripts pra ver o que tinha feito de errado e revirando a Unity sem sucesso.... Agora está tudo bem, retirei a Tag do Root_jnt e está tudo funcionando. Tanto na build do windows como na WebGL.

E que bom que você escreveu o caminho que percorreu até descobrir o erro. Agora já tenho uma ideia de onde seguir quando o der um bug novamente.

Obrigado!!!

Yay! Que bom que resolveu!