Ajustando la cámara
Clase 9 de 34 • Curso de Desarrollo de Videojuegos Móviles con Unity
Resumen
¿Cómo resolver el problema de la cuadrícula fuera de cámara en Unity?
Un dilema común al configurar una cuadrícula en Unity es que, al dar Play, puede que la cuadrícula se haya ubicado fuera del campo de visión de la cámara. Para abordar este problema, es crucial entender y ajustar algunas configuraciones de la cámara, en particular su posición y tamaño ortográfico.
¿Qué es el tamaño ortográfico?
El tamaño ortográfico se refiere a la distancia desde el centro de la pantalla visual de la cámara hasta el borde superior o inferior en la dimensión vertical. Este tamaño determina cuánto del escenario se mostrará en la pantalla. Al configurar el tamaño ortográfico, debemos considerar cuál es la dimensión más grande del escenario, ya sea vertical u horizontal, y ajustar el tamaño en consecuencia para asegurar que toda la cuadrícula sea visible.
¿Cómo posicionar automáticamente la cámara en Unity?
Para posicionar la cámara correctamente de manera automática, podemos implementar un código en nuestro script de Unity que garantice que la cámara esté centrada en relación con la cuadrícula. Aquí tienes cómo hacerlo paso a paso:
void positionCamera()
{
float newPositioningX = (float)width / 2;
float newPositioningY = (float)height / 2;
Camera.main.transform.position = new Vector3(newPositioningX - 0.5f, newPositioningY - 0.5f, -10f);
}
Este método calcula la posición ideal de la cámara basándose en las dimensiones de la cuadrícula y luego ajusta la posición con un offset de 0.5 unidades debido a la forma en que Unity maneja las coordenadas, partiendo del borde inferior izquierdo.
¿Cómo ajustar el tamaño ortográfico automáticamente?
El ajuste automático del tamaño ortográfico implica calcular previamente qué dimensión necesita más espacio de visualización y luego aplicarle un margen para asegurar que todo sea visible. Aquí te mostramos cómo añadir esta funcionalidad al script:
void positionCamera()
{
float horizontal = width + 1f; // Añadimos un margen de 1
float vertical = (height / 2f) + 1f;
Camera.main.orthographicSize = horizontal > vertical ? horizontal : vertical;
}
Este script utiliza una operación ternaria para determinar si el tamaño horizontal o vertical debe ser el valor del tamaño ortográfico.
¿Cómo personalizar la posición y el tamaño ortográfico?
Para proporcionar más control, se pueden añadir variables que permitan personalizar la posición y el tamaño ortográfico de la cámara:
public float cameraSizeOffset;
public float cameraVerticalOffset;
void positionCamera()
{
float newPositioningY = (float)height / 2;
Camera.main.transform.position = new Vector3(newPositioningX - 0.5f, newPositioningY - 0.5f + cameraVerticalOffset, -10f);
float horizontal = width + 1f;
float vertical = (height / 2f) + 1f;
Camera.main.orthographicSize = (horizontal > vertical ? horizontal : vertical) + cameraSizeOffset;
}
Estas variables (cameraSizeOffset
y cameraVerticalOffset
) permiten ajustar, respectivamente, la distancia ortográfica adicional y el desplazamiento vertical de la cámara para facilitar futuros ajustes, especialmente cuando se integren elementos de interfaz de usuario.
Este método no solo optimiza la visibilidad de la cuadrícula cuando sus dimensiones cambian, sino que también prepara el terreno para la inclusión de elementos gráficos adicionales. ¡Sigue experimentando y jugando con estos ajustes en Unity para encontrar la configuración perfecta para tu proyecto!