Menu
CoddyTech

Стена

Урок 5 из 19 курса Игра в Unity: арканоид на Coddy.

Кирпичи выстраиваются в сетку: строки идут сверху вниз, столбцы — слева направо; каждый кирпич — копия префаба Brick, созданная в двух вложенных циклах. Сначала создаётся одна строка:

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);
}

Между n столбцами есть n минус 1 промежутков, поэтому первый кирпич находится левее центра на половину значения (n - 1) * spacing: 5 столбцов с расстоянием 2 располагаются в точках -4, -2, 0, 2 и 4. Каждая следующая строка находится на spacingY ниже предыдущей. Четвёртый аргумент Instantiate — это родительский объект, поэтому каждый кирпич находится внутри объекта Wall. Если в качестве поля для префаба указать тип скрипта, например Brick, Instantiate вернёт скрипт нового кирпича.

challenge icon

Задание

Средне

Создай стену из кирпичей, расположенную по центру.

  1. В GameManager добавь public Brick brickPrefab;, public Transform wall;, rows = 5, columns = 9, spacingX = 1.75f, spacingY = 0.75f, topY = 6f.
  2. BuildWall(): размести кирпич под wall для каждой строки и столбца в точке x left + col * spacingX, y topY - row * spacingY, z 0, где left = -(columns - 1) * spacingX / 2f.
  3. Start() вызывает BuildWall().

Нажми «Играть»: 45 кирпичей образуют сетку (пока они не разрушаются). Затем нажми «Проверить».

Попробуйте сами

using UnityEngine;

public class GameManager : MonoBehaviour
{
    public static GameManager Instance;

    void Awake()
    {
        Instance = this;
    }

    // Позже: стена из кирпичей, счёт, жизни и уровни.
}

Все уроки раздела Игра в Unity: арканоид

Потренируйтесь самостоятельно: Песочница Unity