Contenido del curso

Mecánica Principal

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 width para guardar el ancho.
  • public int height para guardar el alto.
  • public GameObject tileObject como 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:

  1. Crea una carpeta nueva llamada Prefabs en Assets.
  2. Arrastra el objeto Empty desde la jerarquía hacia esa carpeta.
  3. Borra el Empty original de la escena, porque será el script Board quien lo genere dinámicamente [02:30].
  4. Selecciona tu objeto Board y arrastra el prefab al campo TileObject del 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 -5 para controlar la profundidad.
  • La rotación, donde Quaternion.identity significa 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.