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).
Yo me adelante un poco y no lo hice como lo menciona el profe
este es mi resultado
me corrijo, voli a empezar el curso para no perderme detalles y borre el anterior
Nice dick bro
En mi caso, al crear el prefab del Level Block 1 no se pueden ver todos los objetos hijos en la carpeta de prefabs pero me imagino que se debe a la version de Unity que uso.
¿Qué versión usas?
Claro, es por la versión, pero si te fijas en el Inspector, tienes la opción de "Open Prefab", la cual te muestra una scena solamente con lo que contiene el prefab y ahí puedes modificar sus componentes.
una pregunta que me surge que diferencia hay entre usar public o serializefile ? alguien sabe..?
el publico, tiene un ambito público es decir, lo puedes modificar desde otra clase, porque es público. El serializado, solo se puestra en el inspecto, pero su ambito sigue puede ser privado, aun que desde el inspector se pueda modificar.
Hola! Alguien sabe cómo hacer que el personaje se mueva de izquierda a derecha con las teclas?
Te paso el código que use yo:
Primero estableces la velocidad base del personaje. (ignora el jumpForce)
publicclassPlayer:MonoBehaviour{//Movimientos del personajepublic float jumpForce =6;public float runningSpeed = 2f;//Velocidad base del personaje
Despues en el Update le puse lo siguiente:
//Mover a la Derechaif(GameManager.sharedInstance.currentGameState==GameState.inGame){if(Input.GetKey(KeyCode.D)){ rigidBody.velocity=newVector2(runningSpeed, rigidBody.velocity.y);}//Mover a la Izquierdaelseif(Input.GetKey(KeyCode.A)){ rigidBody.velocity=newVector2(runningSpeed *-1, rigidBody.velocity.y);}else rigidBody.velocity=newVector2(runningSpeed *0, rigidBody.velocity.y);}
Gracias
al arrastrar el level block 1 en la carpeta de prefabs no me aparece la opción para desplegar....
esta bien asi como me sale
Me pasa exactamente lo mismo. Alguien sabe si estamos haciendo algo mal?
Le podrían dar click derecho al prefab a la opción que dice open, asi abrir el prefab de una manera grafica que mostrara los elementos utilizados de manera independiente.
Trasnform; encargado de saber posicion y rotacion del espacio
Script Level Block ![](
Porque cuando selecciono cualquier objeto, no me aparecen esas flechas como al profe para mover lo?
selecciona el gameobject en cuestion y usa la herramienta de unas flechitas en la esquina superior izquierda, o solo eligelo y presiona w
Presiona el boton de "move", o la letra "w"
Que tal compañeros tengo una duda, tengo mi primer bloque en 0 en y, cuando lo copio se pone en -2 está sobrepuesto ningún borde sobre sale, si lo trato de mover a 0 para que está igual que el otro se desfasa y se baja un poco.
Saben por qué sucede esto?
Gracias, saludos