Optimiza tu flujo en Unity con un diseño procedural claro y repetible: alinea bloques con píxel perfecto, usa gizmos para ubicar referencias invisibles y crea un script LevelBlock que gestione start point y end point. Así escalas escenarios sin trabajo manual tedioso y evitas errores acumulados.
¿Cómo preparar bloques de nivel para diseño procedural en Unity?
Para encadenar niveles como una cadena, donde termina un eslabón empieza el siguiente. Necesitas dos referencias por bloque que encajen exactamente: inicio y fin.
¿Qué referencias y gizmos necesitas?
- Crea dos GameObjects hijos del bloque: start point y end point.
- Asigna gizmos para localizarlos: círculo para entrada y rombo para salida.
- Colócalos en el punto donde inicia la primera plataforma y donde termina la última.
- Mantén estos puntos visibles con gizmos aunque los objetos sean invisibles.
¿Cómo alinear a píxel perfecto con coordenadas enteras?
- No coloques a ojo: usa coordenadas exactas y evita decimales.
- Usa enteros fáciles de recordar: por ejemplo, Y = -4 para ambos puntos.
- Ajusta plataformas antes que dejar decimales difíciles (ej.: -12.89 → -13).
- Con zoom, verifica que el círculo queda a ras de la primera plataforma.
- Sitúa el rombo al final de la última plataforma y a la misma altura del círculo.
¿Por qué el píxel perfecto y la misma altura son críticos?
Un desnivel de un píxel por bloque acaba siendo enorme al encadenar muchos niveles: 200 bloques con 1 píxel de error suman 200 píxeles de desviación. El personaje puede quedar fuera de la escena. Por eso, ambos puntos deben compartir la misma Y exacta (referencia: -4) y quedar en píxel perfecto.
¿Cómo comprobar la coincidencia de puntos en bloques duplicados?
- Duplica el bloque y arrástralo a la derecha.
- Alinea el centro del rombo del bloque 1 con el centro del círculo del bloque 2.
- Ajusta X con valores enteros hasta que encaje y parezca un solo bloque.
- Si no coincide, corrige el punto o mueve la plataforma. La unión debe ser invisible.
¿Cómo crear el script LevelBlock y vincular referencias en el inspector?
El bloque necesita un script para llevar el seguimiento de sus puntos de referencia. Usa C# con el tipo Transform, que gestiona posición, rotación y escala (transformaciones afines en 2D y 3D).
gusing UnityEngine;
public class LevelBlock : MonoBehaviour
{
public Transform startPoint, exitPoint;
}
- Crea el script LevelBlock y asígnalo al GameObject del bloque.
- Declara variables públicas del tipo Transform: puedes usar una por línea o la sintaxis con coma.
- En el Inspector, arrastra los hijos start point y end point a sus casillas o usa el selector.
- Ejecuta Play: el personaje avanza; aún sin mover la cámara, puede morir fuera de vista, pero el bloque funciona.
- Convierte el bloque en prefab arrastrándolo a la carpeta de prefabs. Así creas un segundo, tercer o cuarto bloque y escalas el escenario.
- Ajusta dificultad modificando plataformas: añade o quita según necesites, manteniendo Y = -4 en círculo y rombo.
¿Qué variantes de bloques vas a crear y cómo mantendrás el píxel perfecto? Comparte tus ideas y ajustes en los comentarios.