Contenido del curso
Empezando Nuestro Proyecto
Teoría de Gameplay
Mecánica Principal
- 8

Crea la cuadrícula del juego en Unity
Viendo ahora - 9

Cámara ortográfica automática en Unity
13:06 min - 10

Sistema de coordenadas para piezas en Unity
05:16 min - 11

Piezas aleatorias en la cuadrícula Unity
13:39 min - 12

Mover piezas en Unity con DOTween
07:52 min - 13

Intercambio de piezas con arrays 2D en Unity
14:45 min - 14

Permitiendo solo ciertos tipos de movimientos
05:38 min - 15

Lógica de Match 3 en cuatro direcciones
16:11 min - 16

Detectar Match 3 con corrutinas en Unity
10:21 min - 17

Evitar matches por defecto en Match 3
12:29 min - 18

Colapso de columnas en un Match 3
17:31 min - 19

Combos automáticos en Match 3 con corrutinas
07:46 min - 20

Corrutinas para animar piezas en Match 3
07:35 min - 21

Mejorando la animación de las piezas
07:37 min
Publicacion
Diseño del juego
- 24

Hablemos de diseño
01:34 min - 25

Agregando un sistema de puntos
16:45 min - 26

Sistema de tiempo
07:05 min - 27

Interfaz para el sistema de tiempo
09:26 min - 28

Creando sistema de UI
06:26 min - 29

Sistema de UI reactivo al estado del juego
14:36 min - 30

Agregando funcionalidad a la pantalla de game over
09:16 min - 31

Cómo reiniciar board y puntos en Unity
08:39 min - 32

Agregando audio
10:05 min - 33

Terminando el juego
07:38 min
Conclusiones
Crea la cuadrícula del juego en Unity
Resumen
Construir la mecánica principal de un juego tipo match en Unity empieza por crear una cuadrícula dinámica desde código C#. Aquí aprendes a programar un script Board que genere filas y columnas usando prefabs, ideal si estás dando tus primeros pasos en desarrollo de videojuegos 2D.
¿Cómo organizar los scripts y crear la clase Board en Unity?
Antes de escribir código conviene ordenar el proyecto. Una estructura clara te ahorra horas de búsqueda más adelante.
Dentro de la ventana de Project, crea una carpeta llamada Scripts con clic derecho, Create Folder. Ahí vivirán todos los archivos de lógica del juego. Dentro de esa carpeta, genera un nuevo script de C# llamado Board, que será el responsable de manejar la cuadrícula [00:14].
Al abrirlo en Visual Studio, lo primero es declarar las propiedades que definen el tablero:
public int widthpara guardar el ancho.public int heightpara guardar el alto.public GameObject tileObjectcomo referencia al objeto que ocupará cada espacio vacío [00:48].
¿Para qué sirve declarar variables como public en Unity? Hacerlas public las expone en el Inspector, así puedes modificar valores como el tamaño del tablero sin tocar el código.
¿Cómo conectar el script Board con un GameObject vacío?
De vuelta en Unity, crea un empty GameObject en la jerarquía y nómbralo Board. Desde el Inspector, agrégale el componente Board que acabas de programar y asigna valores iniciales: 5 de ancho y 5 de alto [01:35].
El siguiente paso es preparar el tile visual. En la carpeta de Sprites tienes el asset Empty. Arrástralo a la escena para que Unity lo cree como GameObject con su Sprite Renderer configurado por defecto.
¿Cómo convertir un GameObject en prefab reutilizable?
Los prefabs son plantillas que permiten instanciar copias idénticas en tiempo de ejecución. Para crearlo:
- Crea una carpeta nueva llamada
Prefabsen Assets. - Arrastra el objeto
Emptydesde la jerarquía hacia esa carpeta. - Borra el
Emptyoriginal de la escena, porque será el scriptBoardquien lo genere dinámicamente [02:30]. - Selecciona tu objeto
Boardy arrastra el prefab al campoTileObjectdel Inspector.
¿Cómo programar la función SetupBoard con dos for loops?
La generación de la cuadrícula vive en una función llamada SetupBoard, invocada desde Start() para que se ejecute al iniciar el juego.
Un truco práctico de productividad: escribe el nombre de la función antes de existir. Visual Studio marcará el error con el linter, y al hacer hover sobre el nombre te ofrecerá la opción de generar el método automáticamente [03:25]. Borra el throw new NotImplementedException que aparece por defecto y empieza a implementar la lógica.
La estrategia es usar dos for loops anidados: uno recorre el ancho (X) y otro el alto (Y).
csharp void SetupBoard() { for (int x = 0; x < width; x++) { for (int y = 0; y < height; y++) { var o = Instantiate(tileObject, new Vector3(x, y, -5), Quaternion.identity); o.transform.parent = transform; } } }
¿Qué hace Instantiate y por qué usar Quaternion.identity?
La función Instantiate crea una nueva instancia del prefab en el escenario y devuelve una referencia al GameObject generado. Recibe tres argumentos clave:
- El objeto a clonar, en este caso
tileObject. - La posición como
Vector3, usando las coordenadas X e Y del loop y un Z fijo en-5para controlar la profundidad. - La rotación, donde
Quaternion.identitysignifica sin rotación aplicada [04:45].
Después de instanciar, asignar o.transform.parent = transform agrupa cada tile dentro del objeto Board en la jerarquía, manteniendo todo organizado.
¿Qué es un prefab en Unity? Es un GameObject reutilizable guardado como asset. Te permite instanciar copias idénticas en runtime sin recrearlas manualmente.
¿Cómo probar la cuadrícula y qué pasa si cambias el tamaño?
Guarda el script y vuelve a Unity. Con el objeto Board configurado en 5x5 y el prefab referenciado, presiona Play. La cuadrícula aparece generada dinámicamente.
Lo divertido es jugar con los valores: cambia el tablero a 12 por 5 y vuelve a darle play. Verás cómo el script responde sin tocar una línea de código adicional, gracias a que las variables width y height están expuestas en el Inspector.
El resultado tiene un detalle por resolver: la cámara no alcanza a ver la cuadrícula completa en pantalla. Ese ajuste de la vista de juego es el siguiente paso natural para que tu tablero se vea bien sin importar su tamaño.
¿Qué tamaño de cuadrícula vas a probar primero en tu proyecto? Cuéntame en los comentarios.