Voltar para o Blog
Quest Log

Câmera Ortográfica vs Perspectiva na Unity: Quando Usar

Dois volumes de visão de câmera lado a lado, um em forma de caixa e outro em forma de pirâmide, sobre a mesma cena de blocos

Unity orthographic camera ou perspectiva? Como escolher pelo gênero do jogo, o que o Orthographic Size significa e a conta que liga câmera, PPU e resolução.

Ferramenta:Unity

Câmera Ortográfica vs Perspectiva na Unity: Quando Usar

Na Unity, a câmera ortográfica (orthographic camera) mostra o mundo sem profundidade visual: um objeto tem o mesmo tamanho na tela esteja perto ou longe. A perspectiva imita o olho, e o que está longe fica menor. Para jogo 2D, isométrico e quase todo jogo em pixel art, use ortográfica. Para jogo 3D em primeira ou terceira pessoa, use perspectiva. A troca fica no Inspector da câmera, no campo Projection.

O resto deste post é sobre o que vem depois da escolha: o que o número do Orthographic Size significa, a conta que liga esse número ao Pixels Per Unit e à resolução, como o Field of View muda a sensação do jogo, qual câmera cada gênero pede e os erros clássicos de sprite sumindo e zoom que não funciona. Tudo vale para o Unity 6.3 LTS.

Diferença entre câmera ortográfica e perspectiva na Unity

Pense no volume que a câmera enxerga.

  • Na perspectiva, esse volume é uma pirâmide cortada (o frustum): estreita perto da câmera, larga longe. Um cubo de 1 metro a 5 metros ocupa muito mais tela que o mesmo cubo a 50 metros. Linhas paralelas convergem para pontos de fuga.
  • Na ortográfica, o volume é uma caixa. Perto ou longe, o cubo tem o mesmo tamanho. Linhas paralelas continuam paralelas.

No Inspector da Camera (em projeto URP, o componente aparece com seções como Projection, Rendering e Output), o campo Projection tem as duas opções: Perspective e Orthographic. Cada uma mostra campos diferentes:

  • Perspective: Field of View (com Field of View Axis, vertical ou horizontal), opção de Physical Camera e Clipping Planes.
  • Orthographic: Size e Clipping Planes.

Por código, as propriedades são Camera.orthographic (bool), Camera.orthographicSize (float) e Camera.fieldOfView (float, em graus, no eixo vertical).

A escolha não é técnica, é de linguagem visual. O post de arte 2D ou 3D para jogo indie discute a decisão de estilo que vem antes desta.

Orthographic Size: o que o número significa na prática

O Orthographic Size é metade da altura visível, em unidades do mundo. Size 5 mostra 10 unidades de altura. A largura vem da proporção da tela: altura visível vezes camera.aspect. Em 16:9, Size 5 mostra cerca de 17,8 unidades de largura; em 4:3, 13,3.

Repare: o Size fixa a altura. Em telas mais largas, o jogador vê mais mundo dos lados. Se o seu jogo depende de mostrar exatamente a mesma área em qualquer tela, você precisa tratar isso (barras laterais ou ajuste do Size pela largura).

Agora, a conta que junta câmera, arte e tela. Num jogo em pixel art:

Orthographic Size = altura da resolução de referência / (2 x Pixels Per Unit)

Com resolução de referência 320x180 e PPU 16: 180 / 32 = 5,625. Com 640x360 e PPU 32: 360 / 64 = 5,625 também. Com essa conta, um pixel da arte é exatamente um pixel da resolução de referência, e o resto é escala inteira na tela.

Arquivo CameraMath.cs, para conferir os números no Console:

using UnityEngine;

[RequireComponent(typeof(Camera))]
public class CameraMath : MonoBehaviour
{
    [SerializeField] private int referenceHeightPixels = 180;
    [SerializeField] private int pixelsPerUnit = 16;
    [SerializeField] private float distanceToCheck = 10f;

    private void Start()
    {
        Camera cam = GetComponent<Camera>();

        if (cam.orthographic)
        {
            float visibleHeight = cam.orthographicSize * 2f;
            float visibleWidth = visibleHeight * cam.aspect;
            float idealSize = referenceHeightPixels / (2f * pixelsPerUnit);

            Debug.Log($"Ortográfica: {visibleWidth:F2} x {visibleHeight:F2} unidades visíveis.");
            Debug.Log($"Size ideal para {referenceHeightPixels}px e PPU {pixelsPerUnit}: {idealSize:F3}");
        }
        else
        {
            float visibleHeight = 2f * distanceToCheck * Mathf.Tan(cam.fieldOfView * 0.5f * Mathf.Deg2Rad);
            float visibleWidth = visibleHeight * cam.aspect;

            Debug.Log($"Perspectiva: a {distanceToCheck} unidades, {visibleWidth:F2} x {visibleHeight:F2} unidades visíveis.");
        }
    }
}

A fórmula da perspectiva mostra por que ela não tem um "tamanho" fixo: a área visível depende da distância. A 10 unidades com FOV 60, a câmera vê cerca de 11,5 unidades de altura; a 20 unidades, o dobro.

Se você só quer que o tamanho fique certo sem pensar nisso, a Pixel Perfect Camera do URP calcula o Size sozinha a partir do PPU e da resolução de referência.

Field of View na perspectiva e a sensação de profundidade

O Field of View é o ângulo de abertura da câmera. O padrão da Unity é 60 graus, medido na vertical. O que ele muda na sensação:

  • FOV baixo (30 a 45): efeito de teleobjetiva. A profundidade "achata", o fundo parece perto do personagem. Bom para câmera de terceira pessoa distante e para cenas mais cinematográficas.
  • FOV médio (55 a 70): neutro. A maioria dos jogos em terceira pessoa fica aqui.
  • FOV alto (80 a 100, medido na horizontal em muitos jogos de PC): grande angular. Muita visão periférica, sensação de velocidade, distorção nas bordas. Comum em FPS.

Atenção a um detalhe: jogos de PC costumam expor o FOV horizontal no menu, e a Unity usa o vertical por padrão. 90 graus horizontais em 16:9 correspondem a cerca de 59 graus verticais. O campo Field of View Axis permite trabalhar na horizontal no Inspector, e Camera.HorizontalToVerticalFieldOfView faz a conversão por código.

Na ortográfica, nada disso existe. Mexer no FOV com a câmera em Orthographic não muda nada, e é uma das dúvidas mais comuns de quem está começando.

Qual escolher por gênero: 2D, isométrico, 2.5D e 3D

Plataforma 2D, top-down 2D, puzzle 2D: ortográfica. Sprites com tamanho constante, pixel perfect possível, colisão e posição batem com o que você vê. É a recomendação padrão, e o post de melhor engine para jogos 2D parte desse modelo.

Isométrico: ortográfica. A projeção isométrica de jogo é, por definição, sem ponto de fuga. Duas formas:

  • Arte 2D isométrica: Tilemap com Grid em layout Isometric ou Isometric Z as Y, câmera ortográfica normal. Ajuste a ordem de desenho (Transparency Sort Mode com eixo customizado) para o que está mais "embaixo" na tela ficar na frente.
  • Modelos 3D com visual isométrico: câmera ortográfica girada, por exemplo 30 graus em X e 45 graus em Y.

2.5D (modelos 3D, jogabilidade num plano): as duas servem. Perspectiva dá profundidade natural ao cenário e é o padrão de plataformas 2.5D com modelos 3D. Ortográfica deixa o visual mais "diorama" e facilita alinhar a jogabilidade.

3D em primeira ou terceira pessoa, corrida, ação: perspectiva. Ortográfica em 3D livre deixa impossível julgar distância.

Estratégia e simulação vistos de cima: depende. Muitos usam perspectiva com FOV baixo e câmera alta, que fica parecido com isométrico mas mantém a sensação de profundidade.

Escolher a câmera é rápido. Construir em volta dela (movimento que respeita a câmera, UI que se adapta à tela, fase que cabe no enquadramento) é o que transforma um protótipo num jogo. Se você quer ver essas decisões encadeadas num projeto real, o curso de Unity é o caminho organizado.

Curso de Unity
Quer fazer seu primeiro jogo na Unity?

No curso de Unity 6 da CursoGame.Dev você vai do zero ao primeiro jogo, com um desafio prático em cada level e suporte individual no WhatsApp quando travar.

Conhecer o curso de Unity
Suporte no WhatsAppAcesso vitalícioGarantia de 7 dias

Parallax e profundidade: o que cada câmera permite

Parallax é o efeito de camadas de fundo andando mais devagar que a frente, que dá profundidade a jogo 2D.

Com perspectiva, ele vem de graça: coloque as montanhas em Z = 50, as árvores em Z = 10 e o jogador em Z = 0. Ao mover a câmera, o que está longe anda menos na tela. A contrapartida: o tamanho aparente de cada camada depende da distância, e você precisa escalar a arte para compensar. Pixel perfect fica praticamente impossível nas camadas de fundo.

Com ortográfica, Z não muda nada na tela. O parallax é feito por script: cada camada se move uma fração do movimento da câmera (fundo distante com 0,1, intermediário com 0,5). Mais trabalho, controle total e compatível com pixel perfect.

Na ortográfica, Z continua servindo para ordem de desenho em alguns casos, mas em 2D a ordem é decidida principalmente por Sorting Layer e Order in Layer do Sprite Renderer.

Erros comuns: sprites sumindo, zoom errado e clipping planes

Sprites sumindo. A câmera desenha só o que está entre o Near e o Far de Clipping Planes. Em 2D, a câmera fica em Z = -10 olhando para +Z. Um sprite em Z = -15 está atrás da câmera e some. Um sprite em Z = -9,8 está a 0,2 da câmera, mais perto que o Near padrão (0,3), e também some. Deixe todos os sprites em Z = 0 e controle a ordem pelo Sorting Layer.

Zoom que não funciona. Em ortográfica, aproximar a câmera no Z ou mudar o FOV não faz zoom. Zoom é orthographicSize. Em perspectiva, zoom é FOV ou distância.

Câmera "achatada" ou "esticada" em outra tela. O Size fixa a altura; telas ultrawide mostram mais dos lados. Se o enquadramento é importante, ajuste o Size pela largura ou use barras.

Sombras e objetos 3D cortados de perto. Near muito alto em perspectiva corta a arma em primeira pessoa; muito baixo (0,01) com Far alto (5000) causa z-fighting, faces piscando. Mantenha a razão Far/Near razoável.

Mistura das duas. UI e minimapa podem ter câmera própria ortográfica sobre uma câmera principal em perspectiva. No URP, isso se faz com Camera Stack (câmera Base mais câmeras Overlay).

Próximo passo: Pixel Perfect ou Cinemachine

Se o jogo é 2D em pixel art, o próximo passo é travar a escala com a Pixel Perfect Camera. Se é 2D com arte em alta resolução ou 3D, o próximo passo é fazer a câmera seguir o jogador com dead zone e limite, e aí entra o Cinemachine. Antes disso, rode o CameraMath.cs com as duas projeções na mesma cena e veja os números mudando: depois de entender a conta, a escolha da câmera deixa de ser tentativa e erro.

Perguntas frequentes

O que é o Orthographic Size da câmera na Unity?

É metade da altura da área visível, em unidades do mundo. Com Size 5, a câmera mostra 10 unidades de altura. A largura depende da proporção da tela: em 16:9, essas 10 unidades de altura viram cerca de 17,8 de largura.

Jogo 2D na Unity precisa ser com câmera ortográfica?

Quase sempre é a melhor escolha, porque mantém o tamanho dos sprites igual em qualquer profundidade e facilita o pixel perfect. Mas um jogo 2D com camadas de cenário pode usar perspectiva para ter parallax automático pela distância em Z, aceitando que o tamanho dos objetos muda com a profundidade.

Por que mudar o Field of View não faz nada na minha câmera?

Porque a câmera está em Orthographic. O Field of View só existe na projeção em perspectiva. Na ortográfica, o zoom é o Orthographic Size, e afastar a câmera no eixo Z também não muda o tamanho do que aparece.

Qual câmera usar em jogo isométrico na Unity?

Ortográfica. A projeção isométrica clássica não tem ponto de fuga, então objetos do mesmo tamanho aparecem iguais em qualquer ponto do mapa. Em 3D, gire a câmera ortográfica (por exemplo, 30 graus em X e 45 em Y); em 2D, use Tilemap isométrico com câmera ortográfica normal.