Unity WebGL: Exportar e Publicar o Jogo no itch.io
Para publicar um jogo Unity WebGL no itch.io você gera a build pela plataforma Web em File > Build Profiles, compacta em zip o conteúdo da pasta gerada (com o index.html na raiz do zip), cria a página no itch como projeto HTML e marca o arquivo como jogável no navegador. Com a compressão padrão (gzip) e o tamanho do iframe igual ao da build, o jogo abre de primeira.
O que costuma dar errado é pequeno e repetitivo: zip com uma pasta a mais por cima, iframe menor que o canvas, botão de sair que não faz nada, áudio mudo. Este passo a passo resolve cada um e termina com um checklist para testar antes de deixar a página pública.
Quando publicar na web faz sentido
Build web é a forma de menor atrito para alguém jogar: um clique, sem download, sem aviso de antivírus. Por isso é o formato que mais recebe jogadores em game jam e em página de itch.
Faz sentido quando:
- O jogo é curto ou é uma demo, e você quer feedback rápido.
- É jogo de jam, onde quem avalia joga dezenas de entradas e pula as que pedem download.
- Você quer um link para mandar no portfólio ou no Discord.
Pense duas vezes quando o jogo é 3D pesado, usa muita memória, depende de multithreading ou de recurso específico de desktop. O navegador limita memória e desempenho, e a primeira carga baixa tudo de uma vez.
Unity WebGL: Build Profile Web
No Unity 6.3 LTS, a plataforma se chama Web (a documentação usa esse nome; WebGL 2 é a API gráfica padrão dela).
- No Unity Hub, em Installs, adicione o módulo Web Build Support à sua versão.
- No projeto, abra File > Build Profiles, selecione Web e clique em Switch Platform.
- Em Scene List, confira que a cena inicial está no topo.
- Para a versão que vai ao público, deixe Development Build desmarcado. Build de desenvolvimento não é comprimida e fica bem maior.
- Code Optimization: para publicar, escolha a opção de tamanho ou de velocidade de execução em vez da de build rápida. A de tamanho reduz o download, o que pesa mais na web.
O WebGPU existe no Unity 6.3 em estado experimental, segundo a página "Enable the WebGPU graphics API" do manual. Ele não vem ligado e, se você ativar, o próprio manual recomenda manter o WebGL2 como reserva para navegadores sem suporte. Para publicar no itch hoje, fique no WebGL2.
Player Settings: resolução, template e compressão
Abra Edit > Project Settings > Player e selecione a aba Web.
Resolution and Presentation
- Default Canvas Width / Height: o tamanho do jogo na página. 960 x 600 é o padrão. Para pixel art em 16:9, 960 x 540 ou 1280 x 720 funcionam bem. Anote os números: você vai digitar os mesmos no itch.
- Run In Background: ligue se o jogo não deve pausar quando o jogador clica fora do iframe.
- WebGL Template: Default mostra barra de carregamento, logo e botão de tela cheia; Minimal mostra só o canvas. No itch, o Minimal combina melhor porque a página já tem moldura e botão de tela cheia próprios.
Publishing Settings
- Compression Format: Gzip é o padrão da Unity, e o manual explica por quê: funciona em todos os navegadores, em HTTP e HTTPS. Brotli comprime mais, mas Chrome e Firefox só descomprimem Brotli nativamente via HTTPS e a build demora mais.
- Decompression Fallback: deixe desligado para o itch. O itch serve os arquivos com o cabeçalho certo.
Esta seção é curta de propósito. Se a sua build já deu erro de "Unable to parse Build" ou tela preta, o diagnóstico completo está em erros de compressão do WebGL na Unity.
Ajustes de código para web
Duas coisas no código quebram na web sem aviso. Application.Quit() não faz nada no navegador, então o botão "Sair" vira um botão morto. E o navegador só libera áudio depois do primeiro clique ou toque do jogador.
Arquivo QuitButton.cs, no botão de sair do menu:
using UnityEngine;
public class QuitButton : MonoBehaviour
{
private void Awake()
{
#if UNITY_WEBGL && !UNITY_EDITOR
gameObject.SetActive(false);
#endif
}
public void Quit()
{
Application.Quit();
}
}
O símbolo UNITY_WEBGL continua sendo o da plataforma Web no Unity 6. Para o áudio, comece o jogo numa tela de título com "Clique para jogar": o clique destrava o áudio e a música toca normalmente a partir daí.
Gerar a build e testar localmente
Clique em Build em Build Profiles e escolha uma pasta vazia, por exemplo Builds/Web. O resultado é:
Builds/Web/
index.html
Build/
Web.data.gz
Web.framework.js.gz
Web.loader.js
Web.wasm.gz
TemplateData/
Os nomes dos arquivos dentro de Build/ seguem o nome da pasta que você escolheu.
Não abra o index.html com duplo clique. Pelo protocolo file://, o navegador bloqueia o carregamento e você vai achar que a build está quebrada. Use Build And Run: a Unity sobe um servidor local configurado e abre o jogo. Se precisar testar a pasta depois, rode um servidor local e lembre que ele precisa servir os arquivos .gz com o cabeçalho certo (é exatamente o assunto do post de erros).
Na prática, o teste mais fiel é o próprio itch.io com a página em modo rascunho. Ele é gratuito e configurado para Unity.
Subir no itch.io: zip, iframe e fullscreen
O zip
Entre na pasta Builds/Web, selecione o conteúdo (index.html, Build, TemplateData) e compacte. Não compacte a pasta Web em si: o itch procura index.html na raiz do zip, e o nome é sensível a maiúsculas. Esse é o erro mais comum de primeira publicação.
Os limites da documentação de HTML5 do itch.io, consultada em outubro de 2026: até 1.000 arquivos extraídos, 500 MB no total, 200 MB por arquivo e caminho de até 240 caracteres.
A página
- No itch.io, Dashboard > Create new project.
- Kind of project: HTML.
- Em Uploads, envie o zip e marque This file will be played in the browser.
- Em Embed options:
- Embed in page com Viewport dimensions iguais ao Default Canvas da Unity (ex.: 960 x 540). Iframe menor corta o jogo; maior deixa faixa preta.
- Marque Fullscreen button se o seu template não tiver botão próprio (com o Minimal, marque).
- Mobile friendly só se o jogo tem controle de toque. Segundo a documentação do itch, no celular o jogo sempre abre em tela cheia com clique para iniciar, e sem essa opção o jogador vê um aviso de que pode não funcionar.
- Automatically start on page load: desligue em jogo pesado. O jogador vê a página antes de começar o download.
- Salve como Draft e abra a página para testar.
Se você nunca montou uma página no itch, o guia de como publicar jogo no itch.io cobre preço, capa, screenshots e o butler para atualizar builds sem refazer upload manual.
Ver o jogo rodando no navegador é um marco, e também é quando aparece o que faltava: menu, tela de vitória, carregamento entre fases, salvar progresso, controle que funciona no teclado e no toque. Levar um protótipo até um jogo completo e publicável é a parte em que quem aprende sozinho mais trava.
Mobile e navegador: limitações
- Navegadores suportados: o manual do Unity 6.3 lista Chrome, Firefox, Edge e Safari no desktop, e Safari do iOS 15 em diante e Chrome do Android 58 em diante no celular.
- Memória: celular tem bem menos memória disponível para a aba. Texturas grandes e cenas 3D pesadas fecham a aba sem mensagem.
- Safari em iframe: o manual informa que o Safari não oferece IndexedDB para conteúdo dentro de iframe. Como o itch roda o jogo num iframe, o
PlayerPrefspode não persistir no Safari. Teste o save lá. - Threads: multithreading na web depende de configuração de servidor que o itch trata com opção própria. Deixe desligado se não souber que precisa.
- Teclas do navegador: Ctrl+W, F5 e Esc fazem coisas no navegador. Evite usá-las como controle.
Checklist antes de publicar
- Development Build desmarcado e Compression Format em Gzip.
- Zip com
index.htmlna raiz, sem pasta extra. - Viewport do itch igual ao Default Canvas Width/Height.
- Jogo abre no Chrome e no Firefox com a página em rascunho.
- Áudio toca depois do primeiro clique.
- Botão de sair escondido na web.
- Tela cheia funciona e volta sem quebrar a resolução.
- Save (PlayerPrefs) sobrevive a recarregar a página.
- Testado no celular se Mobile friendly estiver marcado.
- Tempo de carga aceitável numa conexão comum (abra numa aba anônima e cronometre).
Erros comuns e onde resolver
- "Unable to parse Build/...gz": problema de compressão e cabeçalho. Veja o post de erros de compressão.
- "No index.html found" ou página em branco no itch: zip com pasta por cima ou arquivo com nome diferente.
- Jogo cortado ou com barra de rolagem: viewport do itch diferente do canvas.
- Tela preta depois de carregar: geralmente erro de script na inicialização. Abra o console do navegador (F12) e procure a primeira exceção.
- Build com 100 MB ou mais: confira texturas sem compressão, áudio em WAV e cenas de teste incluídas na Scene List.
Próximo passo
Publique um jogo pequeno em rascunho hoje, mesmo que seja só uma cena com um personagem que anda. Ter o caminho completo funcionando uma vez transforma as próximas publicações em rotina. Se você também usa Godot, compare o processo em exportar jogo Godot para web: o zip e a página no itch são os mesmos.
Perguntas frequentes
WebGL e Web são a mesma coisa na Unity 6.3?
Sim. No Unity 6 a plataforma aparece como Web nos Build Profiles e na documentação, e o WebGL 2 continua sendo a API gráfica padrão dela. O símbolo de compilação no código segue sendo UNITY_WEBGL. Quem procura "Unity WebGL" está falando da build Web.
O itch.io aceita build Unity com compressão Brotli?
Aceita. A documentação de HTML5 do itch.io diz que arquivos terminados em .br são servidos como conteúdo Brotli e que conteúdo gzip também é detectado. Por ser mais simples e funcionar sem HTTPS, o padrão gzip da Unity é a escolha segura para a primeira publicação.
Qual o limite de tamanho de jogo HTML5 no itch.io?
Segundo a documentação de HTML5 do itch.io consultada em outubro de 2026, o zip extraído pode ter até 1.000 arquivos, 500 MB no total e 200 MB por arquivo, com caminhos de até 240 caracteres. Uma build Unity Web comum fica bem abaixo disso.
Jogo Unity WebGL roda no celular?
Roda em navegadores recentes: o manual do Unity 6.3 lista Safari do iOS 15 em diante e Chrome do Android 58 em diante. Mas memória e desempenho de celular são limitados, então teste no aparelho e marque a opção Mobile friendly no itch.io só se o jogo tiver controle de toque.



