Victoria Hugo Pérez Arteaga
orlando almario
ProfesorJuan Carlos Huaman Navarro
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:
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:
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]:
Estas variables se aplican así dentro del código:
¿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.
Victoria Hugo Pérez Arteaga
orlando almario
ProfesorJuan Carlos Huaman Navarro
Eric Rodríguez Gallegos
Leonel Grisaleña
Gerónimo Pondal
Gera Meraki
Algo que noto en estos cursos es que las cosas de programación que se explican las entiendo porque tengo bases, pero no creo que alguien que recíen empieza con programación y desarrollo de videojugos tome este curso pese a lo simple que pueda ser, porque hay cosas como ciclos, operadores ternarios y demás que creo que pueden confundirlos. No sé si Platzi tenga avisos previos de quiénes y con qué nivel podrían tomar el curso. Muchas gracias por la clase! Aprendí un par de cosas nuevas en 2D, la verdad es que quiero empezar a desarrollar juegos así y no en 3D porque quiero subir juegos a Play Store
Hola! si en realidad este curso no es tanto de Introducción a Unity o Programación, Me parece que si mencionamos en los primeros videos algunos conocimientos previos necesarios. Pero tal vez se puedan hacer esos avisos aun mas explícitos.
confirmo, soy artista 2d y recien descargue unity para hacer el proyecto , no tengo idea de nada de programación y estoy super perdido
Yo pensé que se usaría algo con los Canvas para crear todos los elementos del juego, un Canvas para la UI y otro para el juego.
Muy buena clase! el profesor explica super bien y claro!
yo vi el curso para iniciarme en C#. lo termine y pregunte a chat ADA que curso seguía y me mando a este. y estoy bastante perdido.
Me encanto la explicacion de este video, me gusta como vamos paso a paso y encontrando mejoras en nuestra manera de trabajar