La pared
Lección 5 de 19 del curso Juego en Unity: Rompe ladrillos de Coddy.
Los ladrillos se disponen en una cuadrícula: filas de arriba abajo, columnas de izquierda a derecha, cada una una copia del prefab Brick creada en dos bucles anidados. Primero, una fila:
float left = -(columns - 1) * spacingX / 2f;
for (int col = 0; col < columns; col++)
{
Vector3 pos = new Vector3(left + col * spacingX, topY, 0f);
Instantiate(brickPrefab, pos, Quaternion.identity, wall);
}Entre n columnas hay n menos 1 espacios, así que la primera queda a la izquierda a la mitad de (n - 1) * spacing: 5 columnas separadas por 2 quedan en -4, -2, 0, 2 y 4. Cada fila queda spacingY más abajo que la anterior. El cuarto argumento de Instantiate es el objeto padre, así que cada ladrillo queda dentro del objeto Wall. Si el campo del prefab tiene un tipo de script como Brick, Instantiate devuelve el script del nuevo ladrillo.
Desafío
IntermedioConstruye una pared de ladrillos centrada.
- En
GameManager, añadepublic Brick brickPrefab;,public Transform wall;,rows = 5,columns = 9,spacingX = 1.75f,spacingY = 0.75f,topY = 6f. BuildWall(): un ladrillo debajo dewallpor cada fila y columna, en xleft + col * spacingX, ytopY - row * spacingY, z 0, conleft = -(columns - 1) * spacingX / 2f.Start()llama aBuildWall().
Pulsa «Jugar»: 45 ladrillos forman una cuadrícula (todavía no se rompen). Después, pulsa «Comprobar».
Pruébalo tú mismo
using UnityEngine;
public class GameManager : MonoBehaviour
{
public static GameManager Instance;
void Awake()
{
Instance = this;
}
// Más adelante: el muro de ladrillos, la puntuación, las vidas y los niveles.
}
Todas las lecciones de Juego en Unity: Rompe ladrillos
Practica por tu cuenta: Playground de Unity