Ver un borde azul al llegar a los extremos del mapa rompe la inmersión. La forma más sólida de corregirlo es fijar límites de cámara con un BoxCollider2D en modo trigger y bloquear el movimiento con MathF.Clamp, respetando el aspect ratio de pantalla. Además, conviene organizar prefabs y GameObjects para mantener el proyecto claro y escalable.
¿Cómo evitar el fondo azul con límites de cámara?
Para impedir que la cámara se mueva fuera del escenario, crea un contenedor de límites que envuelva el mapa y que la cámara nunca pueda rebasar.
Crea un GameObject vacío llamado Camera Limits en posición 0,0,0.
Añade un BoxCollider2D y marca Is Trigger. Evitas colisiones con el personaje.
Escala el collider para cubrir el escenario. Deja unos píxeles dentro del borde para no mostrar azul.
Si quieres estética adicional, coloca bosques u objetos en el borde. La lógica seguirá funcionando.
Idea clave: la cámara no debe superar los bounds del BoxCollider2D. El centro de la cámara más la mitad de su anchura o altura nunca debe cruzar los mínimos y máximos del collider.
¿Qué organización con prefabs y objetos mejora la escena?
Una jerarquía clara reduce errores y acelera cambios.
Agrupa elementos de quests bajo un GameObject vacío llamado "quest". Incluye: quest start, quest end y objetos recolectables (p. ej., la campana).
Crea prefabs de estos elementos. Reutiliza y cambia sprite/nombre cuando lo necesites.
Agrupa NPCs y su lógica (p. ej., la "villager zone") bajo otro GameObject vacío. Facilita leer y navegar la escena.
Beneficio: estructuras compactas y coherentes que simplifican el mantenimiento y la ampliación del mapa.
¿Cómo programar el bloqueo con cámara ortográfica y clamp?
La cámara es ortográfica con tamaño 5. El juego es horizontal: la anchura domina a la altura. Calcula las mitades visibles, precalcula límites y aplica MathF.Clamp tras mover la cámara en Update.
¿Qué variables y componentes necesitas?
Usa variables privadas para rendimiento y claridad. Precálculo evita recomputar en Update.
¿Cómo calcular half width y half height con aspect ratio?
El tamaño ortográfico define la escala visible. La proporción entre anchura y altura se conserva con la relación de pantalla (aspect ratio). Es una regla de proporciones, como el "teorema de Tales".
// La anchura manda en horizontalhalfWidth = theCamera.orthographicSize;// Ajusta la altura con la relación de pantallahalfHeight = halfWidth / Screen.width * Screen.height;
Ventaja: se adapta a editor, mobile, consola, tele 16:9 o 4K. La cámara responde de forma coherente.
Sugerencia: activa el modo Debug del inspector para ver variables privadas y verificar que los valores coinciden con lo esperado.
¿Cómo mantener la posición con MathF.Clamp en Update?
Tras actualizar la posición de seguimiento, limita X e Y para que el centro de la cámara no cruce los bounds menos sus mitades visibles. Mantén Z constante.
// En Update, después de mover la cámarafloat clampX = MathF.Clamp( transform.position.x, minLimits.x + halfWidth, maxLimits.x - halfWidth
);float clampY = MathF.Clamp( transform.position.y, minLimits.y + halfHeight, maxLimits.y - halfHeight
);transform.position =newVector3(clampX, clampY, transform.position.z);
Ajuste fino: si la cámara aún muestra una franja azul, refina el tamaño del BoxCollider2D en cada borde hasta lograr un resultado "pixel perfect".
¿Te gustaría que profundicemos en más técnicas de cámara o en optimización de colliders? Comparte tus dudas y casos en los comentarios.