• Jogos
  • Setor
  • Recursos
  • Comunidade
  • Aprendizado
  • Suporte
Desenvolvimento
Engine do Unity
Crie jogos 2D e 3D para qualquer plataforma
BaixarPlanos e preços
Monetização
Compra no aplicativo (IAP)
Descubra e gerencie IAP em todas as lojas
Mediation
Maximize a receita e otimize a monetização
Qualidade do anúncio
Proteja a experiência do usuário do seu aplicativo
Tapjoy
Construa lealdade do usuário a longo prazo
Todos os produtos de monetização
Aquisição de usuários
Aquisição de usuários
Seja descoberto e adquira usuários móveis
Unity Vector AI
Conecte jogadores com os jogos certos
Aura publicidade no dispositivo
Alcance usuários no dispositivo no pico de engajamento
Todos os produtos de crescimento
Casos de uso
Colaboração 3D
Construa e revise projetos 3D em tempo real
Treinamento imersivo
Treine em ambientes imersivos
Experiências do cliente
Crie experiências interativas em 3D
Todas as soluções da indústria
Setores
Manufatura
Alcançar excelência operacional
Varejo
Transformar experiências em loja em experiências online
Automotivo
Elevar a inovação e as experiências dentro do carro
Todos os setores
Biblioteca técnica
Documentação
Manuais do usuário oficiais e referências de API
Ferramentas de desenvolvedor
Versões de lançamento e rastreador de problemas
Roteiro
Revisar recursos futuros
Glossário
Biblioteca de termos técnicos
Insights
Estudos de caso
Histórias de sucesso do mundo real
Guias de melhores práticas
Dicas e truques de especialistas
Todos os recursos
Novidades
Blog
Atualizações, informações e dicas técnicas
Notícias
Notícias, histórias e centro de imprensa
Central da Comunidade
Discussões
Discutir, resolver problemas e conectar
Eventos
Eventos globais e locais
Histórias da comunidade
Made with Unity
Mostrando criadores do Unity
Transmissões ao vivo
Junte-se a desenvolvedores, criadores e insiders
Prêmios Unity
Celebrando criadores do Unity em todo o mundo
Para todos os níveis
Unity Learn
Domine habilidades do Unity gratuitamente
Treinamento profissional
Aprimore sua equipe com treinadores do Unity
É iniciante no Unity?
Conceitos básicos
Inicie seu aprendizado
Caminhos Essenciais do Unity
É iniciante no Unity? Comece sua jornada
Tutoriais
Dicas práticas e melhores práticas
Educação
Para estudantes
Impulsione sua carreira
Para educadores
Impulsione seu ensino
Concessão de Licença Educacional
Leve o poder do Unity para sua instituição
Certificações
Prove sua maestria em Unity
Opções de suporte
Obter ajuda
Ajudando você a ter sucesso com Unity
Planos de sucesso
Alcance seus objetivos mais rápido com suporte especializado
Perguntas frequentes
Respostas para perguntas comuns
Entre em contato conosco
Conecte-se com nossa equipe
Planos e preços
Idioma
  • English
  • Deutsch
  • 日本語
  • Français
  • Português
  • 中文
  • Español
  • Русский
  • 한국어
Social
Moeda
Comprar
  • Produtos
  • Unity Ads
  • Assinatura
  • Unity Asset Store
  • Revendedores
Educação
  • Estudantes
  • Educadores
  • Instituições
  • Certificação
  • Learn
  • Programa de Desenvolvimento de Habilidades
Baixar
  • Unity Hub
  • Arquivo de download
  • Programa beta
Unity Labs
  • Laboratórios
  • Publicações
Recursos
  • Plataforma de aprendizado
  • Comunidade
  • Documentação
  • Unity QA
  • Perguntas frequentes
  • Status dos Serviços
  • Estudos de caso
  • Made with Unity
Unity
  • Nossa empresa
  • Boletim informativo
  • Blog
  • Eventos
  • Carreiras
  • Ajuda
  • Imprensa
  • Parceiros
  • Investidores
  • Afiliados
  • Segurança
  • Impacto social
  • Inclusão e Diversidade
  • Entre em contato conosco
Copyright © 2025 Unity Technologies
  • Informações legais
  • Política de Privacidade
  • Cookies
  • Não venda nem compartilhe minhas informações pessoais

“Unity”, logotipos Unity e outras marcas comerciais de Unity são marcas comerciais ou marcas comerciais registradas da Unity Technologies ou de suas afiliadas (mais informações aqui). Outros nomes e marcas são marcas comerciais de seus respectivos detentores.

Hero background image

Dicas de otimização para dispositivos móveis para artistas técnicos Parte II

Esta página da Web foi automaticamente traduzida para sua conveniência. Não podemos garantir a precisão ou a confiabilidade do conteúdo traduzido. Se tiver dúvidas sobre a precisão do conteúdo traduzido, consulte a versão oficial em inglês da página da Web.
Clique aqui.

O que você obterá desta página: Parte II da nossa coleção de dicas úteis para otimizar seus ativos artísticos para seu jogo móvel. A Parte I está aqui.

Você pode encontrar muitas outras dicas de otimização para dispositivos móveis em este e-book abrangente e este curso Unity Learn sobre Otimização de Arte 3D para Aplicativos Móveis.

  • Iluminação
  • Evite muitas luzes dinâmicas
  • Desative sombras
  • Asse suas luzes em lightmaps
  • Use Camadas de Luz
  • Use Probes de Luz para objetos em movimento
  • Minimize Probes de Reflexão
  • Tenha cuidado com materiais transparentes
  • Mantenha shaders simples
  • Iluminado vs. Shaders não iluminados
  • Operações matemáticas no shader de vértice
  • Batcher SRP
  • Animação de personagens
  • Mais dicas
Configurações de iluminação no editor Unity
ORGANIZE SEUS GAMEOBJECTS PARA APROVEITAR ESSAS TÉCNICAS DE BATCHING.

Iluminação

A mesma iluminação e materiais baseados fisicamente dos consoles e PCs também podem ser escalados para o seu telefone ou tablet com o Pipeline de Renderização Universal (URP).

Agrupe suas chamadas de desenho

A cada quadro, o Unity determina os objetos que devem ser renderizados e, em seguida, cria chamadas de desenho. Uma chamada de desenho é uma chamada para a API gráfica para desenhar objetos (por exemplo, um triângulo), enquanto um lote é um grupo de chamadas de desenho a serem executadas juntas. Agrupando objetos para serem desenhados juntos minimiza as mudanças de estado necessárias para desenhar cada objeto em um lote. Isso leva a um desempenho melhorado ao reduzir o custo da CPU para renderizar objetos.

  • Agrupamento dinâmico: Para malhas pequenas, o Unity pode agrupar e transformar vértices na CPU e, em seguida, desenhá-los todos de uma vez. Observação: Use isso apenas se você tiver um número suficiente de malhas de baixa poligonagem (menos de 900 atributos de vértice e não mais de 300 vértices). O Agrupador Dinâmico não irá agrupar malhas maiores que isso, então habilitá-lo desperdiçará tempo da CPU procurando por malhas pequenas para agrupar em cada quadro.
  • Agrupamento estático: Para geometria não móvel, o Unity pode reduzir chamadas de desenho para malhas que compartilham o mesmo material. Embora seja mais eficiente do que o agrupamento dinâmico, ele usa mais memória.
  • Instanciação de GPU: Se você tiver um grande número de objetos idênticos, essa técnica os agrupa de forma mais eficiente através do uso de hardware gráfico.

Agrupamento SRP: Habilite o Agrupador SRP no seu ativo URP em Avançado. Isso pode acelerar significativamente seus tempos de renderização da CPU, dependendo da cena.

Evite muitas luzes dinâmicas

É crucial evitar adicionar muitos luzes dinâmicas ao seu aplicativo móvel. Considere alternativas como efeitos de shader personalizados e sondas de luz para malhas dinâmicas, bem como iluminação pré-processada para malhas estáticas.

Veja esta tabela de comparação de recursos para os limites específicos das luzes em tempo real do URP e do Built-In Render Pipeline.

Desative sombras

A projeção de sombra pode ser desativada por MeshRenderer e luz. Desative as sombras sempre que possível para reduzir draw calls.

Você também pode criar sombras falsas usando uma textura desfocada aplicada a uma malha simples ou quad abaixo de seus personagens. Caso contrário, você pode criar sombras em forma de blob com shaders personalizados.

Diagrama de Lightmap do Unity
DESATIVE A PROJEÇÃO DE SOMBRA PARA REDUZIR DRAW CALLS.

Asse suas luzes em lightmaps

Adicione iluminação dramática à sua geometria estática usando Iluminação Global (GI). Marque objetos com Contribuir GI para que você possa armazenar iluminação de alta qualidade na forma de lightmaps.

Sombras e iluminação assadas podem ser renderizadas sem impacto no desempenho em tempo de execução. O Lightmapper Progressivo de CPU e GPU pode acelerar a assadura da Iluminação Global.

Siga o manual e este artigo sobre otimização de luz para começar com lightmapping no Unity.

Múltiplas camadas de luz no editor do Unity
AS CAMADAS PODEM LIMITAR A INFLUÊNCIA DA SUA LUZ A UMA MÁSCARA DE CULLING ESPECÍFICA.

Use Camadas de Luz

Para cenas complexas com várias luzes, separe seus objetos usando camadas e, em seguida, restrinja a influência de cada luz a uma máscara de culling específica.

Probes de luz no editor do Unity

Use Probes de Luz para objetos em movimento

Os Probes de Luz armazenam informações de iluminação assada sobre o espaço vazio em sua cena, enquanto fornecem iluminação de alta qualidade (tanto direta quanto indireta). Eles usam Harmônicos Esféricos, que calculam rapidamente em comparação com luzes dinâmicas.

Esfera reflexiva intersectando um cubo

Minimize Probes de Reflexão

Um Probe de Reflexão pode criar reflexões realistas, mas pode ser muito custoso em termos de lotes. Use cubemaps de baixa resolução, máscaras de culling e compressão de textura para melhorar o desempenho em tempo de execução.

Materiais transparentes no Editor do Unity
MODO DE VISUALIZAÇÃO DE OVERDRAW NA VISÃO DA CENA

Tenha cuidado com materiais transparentes

Renderizar um objeto com transparência sempre usa mais recursos da GPU do que renderizar um objeto opaco, especialmente quando objetos transparentes são renderizados um sobre o outro várias vezes, um processo conhecido como overdraw. É uma boa prática usar um material opaco sempre que possível, especialmente para plataformas móveis. Você pode verificar o overdraw usando o RenderDoc depurador gráfico.

Mantenha shaders simples

Use o shader mais simples possível (como um shader não iluminado) e evite usar recursos desnecessários. Use os shaders pré-construídos do Unity projetados especificamente para sistemas como partículas. URP inclui vários shaders Lit e Unlit leves que já estão otimizados para plataformas móveis. Para minimizar o overdraw, reduza o número e/ou o tamanho das partículas em seu jogo.

Para metas de desempenho, considere usar materiais Opaque Unlit com precisão de meio, quando possível, e tenha cuidado com operações complexas nos nós. Encontre mais dicas na esta sessão sobre Shader Graph.

Iluminado vs. Shaders não iluminados

Ao criar um shader, você pode decidir como o material reagirá à luz. A maioria dos shaders é classificada como iluminada ou não iluminada. Um shader não iluminado é o modelo de sombreamento mais rápido e computacionalmente mais barato. Use-o se você estiver visando um dispositivo de baixo desempenho.

Pontos-chave a considerar incluem:

  • A iluminação não afeta um modelo de sombreamento não iluminado. Isso significa que muitos cálculos, como cálculos de especularidade, não são necessários. O resultado é uma renderização mais barata ou mais rápida.
  • Usar uma direção de arte estilizada que se assemelha a um desenho animado funciona bem com sombreamento não iluminado. Esse estilo vale a pena considerar ao desenvolver jogos para plataformas móveis.
Shader Graph no editor Unity
DESLOCAMENTO DE VÉRTICE NO SHADER GRAPH

Operações matemáticas no shader de vértice

Os shaders de vértice funcionam em cada vértice, enquanto os shaders de pixel (ou fragmento) são executados em cada pixel. Normalmente, há mais pixels sendo renderizados do que vértices na tela. Isso significa que o shader de pixel é executado com mais frequência do que o shader de vértice. Por causa disso, recomendamos que você mova cálculos do shader de pixel para o shader de vértice sempre que possível. Como de costume, após trabalhar em otimizações, você deve fazer mais perfis para determinar a melhor solução para sua situação particular.

Operações básicas, como adição e multiplicação, são mais rápidas de processar. É melhor manter o número de operações matemáticas mais lentas o menor possível. A quantidade de matemática complicada que é usada deve ser mantida mais baixa em dispositivos mais antigos, como aqueles que usam GLES 2.0.

Batcher SRP

Ao alternar o SRP Batcher ativado, observe a janela de Estatísticas e o Gráfico de Vértices da Seção de Renderização na visualização do Profiler. Além de um aumento no FPS, o número de triângulos e vértices sendo processados diminui drasticamente. Como nossos objetos usam um shader que é compatível com URP, o pipeline de renderização agrupa automaticamente todos os dados de geometria relevantes para reduzir a quantidade de dados processados.

Animação de personagens

Por padrão, o Unity importa modelos animados com o Rig Genérico, embora os desenvolvedores frequentemente mudem para o Rig Humanoide ao animar um personagem. Um Rig Humanoide consome 30–50% mais tempo de CPU do que o rig genérico equivalente porque calcula cinemática inversa e re-targeting de animação a cada quadro.

Renderizar malhas esqueléticas é caro. Certifique-se de que cada objeto que usa um SkinnedMeshRenderer realmente precise dele. Se um GameObject só precisa de animação algumas vezes, use a função BakeMesh para congelar a malha esquelética em uma pose estática, depois troque para um MeshRenderer mais simples em tempo de execução.

Principalmente destinado a personagens humanoides, o sistema Mecanim da Unity é bastante sofisticado, mas muitas vezes é usado para animar valores únicos (por exemplo, o canal alfa de um elemento de UI). Evite o uso excessivo de Animadores. Particularmente em conjunto com elementos de UI, considere criar funções de tweening ou usar uma biblioteca de terceiros para animações simples (por exemplo, DOTween ou LeanTween).

Cena de iluminação interna no Editor Unity
VERIFIQUE AS CHAMADAS DE DESENHO, BATCHING E CADA ETAPA DO CICLO DE RENDERIZAÇÃO COM A FERRAMENTA FRAME DEBUGGER

Mais dicas

Trabalhe com um orçamento de tempo específico por quadro

Cada quadro terá um orçamento de tempo baseado em seus quadros-alvo por segundo (fps). Idealmente, um aplicativo rodando a 30 fps permitirá aproximadamente 33,33 ms por quadro (1000 ms / 30 fps). Da mesma forma, um alvo de 60 fps deixa 16,66 ms por quadro.

Dispositivos podem exceder esse orçamento por curtos períodos de tempo (por exemplo, para cenas cortadas ou sequências de carregamento), mas não por uma duração prolongada.

Predefinições

Não confie nas configurações padrão. Use a aba de substituição específica da plataforma para otimizar ativos como texturas e geometria de malha. Configurações incorretas podem resultar em tamanhos de build maiores, tempos de build mais longos e uso de memória ruim. Considere usar o recurso Presets para ajudar a personalizar configurações básicas que melhorarão um projeto específico.

Limite o uso de câmeras

Cada câmera incorrerá em alguma sobrecarga, esteja ela fazendo trabalho significativo ou não. Use apenas os componentes de Câmera necessários para renderização. Em plataformas móveis de baixo desempenho, cada câmera pode usar até 1 ms de tempo de CPU.

Evite efeitos de tela cheia

Efeitos de pós-processamento em tela cheia, como brilhos, podem desacelerar drasticamente o desempenho. Use-os com cautela na direção de arte do seu título.

Tenha cuidado com Renderer.material

Acessar Renderer.material em scripts duplica o material e retorna uma referência à nova cópia. Isso quebra qualquer lote existente que já inclua o material. Se você deseja acessar o material do objeto em lote, use Renderer.sharedMaterial em vez disso.