Стена
Урок 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 вернёт скрипт нового кирпича.
Задание
СреднеСоздай стену из кирпичей, расположенную по центру.
- В
GameManagerдобавьpublic Brick brickPrefab;,public Transform wall;,rows = 5,columns = 9,spacingX = 1.75f,spacingY = 0.75f,topY = 6f. BuildWall(): размести кирпич подwallдля каждой строки и столбца в точке xleft + col * spacingX, ytopY - row * spacingY, z 0, гдеleft = -(columns - 1) * spacingX / 2f.Start()вызываетBuildWall().
Нажми «Играть»: 45 кирпичей образуют сетку (пока они не разрушаются). Затем нажми «Проверить».
Попробуйте сами
using UnityEngine;
public class GameManager : MonoBehaviour
{
public static GameManager Instance;
void Awake()
{
Instance = this;
}
// Позже: стена из кирпичей, счёт, жизни и уровни.
}
Все уроки раздела Игра в Unity: арканоид
Потренируйтесь самостоятельно: Песочница Unity