Contenido del curso
Empezando Nuestro Proyecto
Teoría de Gameplay
Mecánica Principal
- 8

Crea la cuadrícula del juego en Unity
07:59 min - 9

Cámara ortográfica automática en Unity
Viendo ahora - 10

Sistema de coordenadas para piezas en Unity
05:16 min - 11

Piezas aleatorias en la cuadrícula Unity
13:39 min - 12

Mover piezas en Unity con DOTween
07:52 min - 13

Intercambio de piezas con arrays 2D en Unity
14:45 min - 14

Permitiendo solo ciertos tipos de movimientos
05:38 min - 15

Lógica de Match 3 en cuatro direcciones
16:11 min - 16

Detectar Match 3 con corrutinas en Unity
10:21 min - 17

Evitar matches por defecto en Match 3
12:29 min - 18

Colapso de columnas en un Match 3
17:31 min - 19

Combos automáticos en Match 3 con corrutinas
07:46 min - 20

Corrutinas para animar piezas en Match 3
07:35 min - 21

Mejorando la animación de las piezas
07:37 min
Publicacion
Diseño del juego
- 24

Hablemos de diseño
01:34 min - 25

Agregando un sistema de puntos
16:45 min - 26

Sistema de tiempo
07:05 min - 27

Interfaz para el sistema de tiempo
09:26 min - 28

Creando sistema de UI
06:26 min - 29

Sistema de UI reactivo al estado del juego
14:36 min - 30

Agregando funcionalidad a la pantalla de game over
09:16 min - 31

Cómo reiniciar board y puntos en Unity
08:39 min - 32

Agregando audio
10:05 min - 33

Terminando el juego
07:38 min
Conclusiones
Cámara ortográfica automática en Unity
Resumen
Cuando creas una cuadrícula dinámica en Unity, la cámara casi nunca queda donde necesitas. Aquí aprendes a ajustar posición y tamaño ortográfico de la cámara en Unity desde código, para que tu Vboard se vea centrada sin importar sus dimensiones. Es una técnica clave si estás desarrollando juegos 2D con grids generados por script.
¿Qué es el tamaño ortográfico de una cámara en Unity?
El tamaño ortográfico define cuánto del escenario alcanza a ver tu cámara en 2D. En palabras simples, es la distancia desde el centro de la pantalla hasta el borde superior o inferior, medida en unidades de Unity [00:24].
Imagina que tu escenario es un cuadrado y la cámara, un recuadro que lo encuadra. Si el escenario es más alto que ancho, necesitas un tamaño ortográfico que cubra esa altura. Si es más ancho que alto, el cálculo cambia. La regla práctica: revisa qué dimensión es mayor y úsala como referencia.
¿Qué controla el orthographic size en Unity? Controla el zoom vertical de la cámara 2D. Un valor más pequeño acerca la imagen; uno más grande aleja y muestra más escenario.
¿Cómo posicionar la cámara automáticamente desde un script?
Dentro del script de tu Vboard creamos una función llamada positionCamera que se invoca desde Start [01:25]. La idea es calcular el centro del board usando su ancho y alto.
Los pasos clave dentro de la función:
- Crear un float newPosX igual a (float)width / 2f.
- Crear un float newPosY igual a (float)height / 2f.
- Asignar Camera.main.transform.position con un new Vector3(newPosX, newPosY, -10).
El cast a float es importante porque width y height son enteros. Sin ese casting, la división podría devolver resultados imprecisos [02:24]. Yo prefiero forzar el tipo con la f al final del 2 para evitar sorpresas.
¿Por qué la cámara queda descentrada con medio cuadro?
Unity cuenta sus unidades desde la esquina inferior izquierda, pero los objetos se posicionan desde su centro [04:00]. Por eso, al calcular width/2 y height/2, la cámara aterriza en una esquina interna de tu cuadrícula y no en el centro visual.
La solución es restar 0.5 unidades tanto a newPosX como a newPosY. Ese pequeño offset compensa la diferencia entre cómo Unity mide posiciones y cómo se ubican tus elementos [04:33].
¿Cómo ajustar el tamaño ortográfico según el tamaño del board?
Con una cuadrícula de 5x5 todo cabe en pantalla, pero si la cambias a 20x20, la cámara se queda corta [05:08]. Hay que calcular dinámicamente el orthographic size.
Dentro de positionCamera agregamos:
- float horizontal = width + 1 para el cálculo horizontal con margen.
- float vertical = height / 2f + 1 porque el tamaño ortográfico equivale a la mitad de la altura visible.
- Asignar Camera.main.orthographicSize con el mayor de los dos valores usando una operación ternaria.
El margen extra de una unidad evita que el board quede pegado a los bordes de la pantalla [06:30]. La operación ternaria luce así:
csharp Camera.main.orthographicSize = horizontal > vertical ? horizontal : vertical;
Es un if condensado en una sola línea: si horizontal es mayor, usa horizontal; si no, usa vertical [07:30].
¿Qué es una operación ternaria en C#? Es una forma corta de escribir un if-else en una línea. Sigue el formato condición ? valorSiVerdadero : valorSiFalso y devuelve uno de los dos valores según el resultado.
¿Cómo personalizar la cámara con offsets configurables?
Una vez que la cámara se ajusta sola, conviene dejar margen para futuras interfaces de usuario. Para eso creamos dos variables públicas en la clase del board [08:30]:
- public float cameraSizeOffset: suma un valor al tamaño ortográfico final, ideal para hacer zoom in o zoom out.
- public float cameraVerticalOffset: desplaza la cámara verticalmente para dejar espacio a HUDs o menús.
Estas variables se aplican así dentro del código:
- En el orthographicSize: suma cameraSizeOffset al resultado de la ternaria.
- En la posición Y: añade cameraVerticalOffset después del ajuste de 0.5.
¿Qué efecto tienen los offsets en la escena?
Probando en Unity con un cameraVerticalOffset de 5, la cuadrícula se mueve hacia abajo y deja espacio arriba. Con un valor negativo de -3, ocurre lo contrario [10:00]. El cameraSizeOffset funciona como un control de zoom: con 2 la cuadrícula se ve más pequeña, con -3 se agranda [10:36].
Esta flexibilidad será útil cuando agregues paneles, marcadores o botones en pantalla sin tener que recalcular toda la lógica de la cámara.
¿Para qué sirve Camera.main en Unity? Es una variable estática que devuelve la cámara principal de la escena en ese momento. Te permite acceder a sus propiedades sin necesidad de asignarla manualmente desde el inspector.
Un detalle final de configuración: para este tipo de boards, dimensiones como 6 de ancho por 10 de alto suelen ofrecer una experiencia visual cómoda, ni demasiado apretada ni excesivamente vacía [08:00].
¿Habías pensado en otra forma de centrar y escalar la cámara para una cuadrícula generada por código? Cuéntame tu enfoque en los comentarios.