Спавн в сетке
Часть раздела Основы скриптинга в Unity путешествия по Unity на Coddy. Урок 64 из 85.
Вложенный цикл посещает каждую ячейку сетки: внешний цикл выбирает столбец, а внутренний проходит вдоль него. Помести внутрь Instantiate, и в каждой ячейке появится объект. Так из плиток шириной 2 единицы создаётся пол размером 3 на 3, поэтому плитки располагаются на расстоянии 2 единиц друг от друга:
public GameObject tilePrefab;
void Start()
{
for (int x = 0; x < 3; x++)
{
for (int z = 0; z < 3; z++)
{
Vector3 spot = new Vector3(x * 2, 0, z * 2);
Instantiate(tilePrefab, spot, Quaternion.identity, transform);
}
}
}Плитки располагаются в точках x = 0, 2, 4 и z = 0, 2, 4: всего их девять, от (0, 0, 0) до (4, 0, 4). Циклы выполняются один раз в Start(). В Update() они добавляли бы ещё девять плиток в каждом кадре.
Четвёртый аргумент — родительский объект. Девять отдельных объектов Tile(Clone) загромождали бы окно Hierarchy; передача transform помещает их внутрь объекта, на котором находится этот скрипт, — Floor, — чтобы их можно было свернуть, перемещать вместе или удалить вместе. Переданная позиция по-прежнему является мировой позицией.
Задание
СреднеПострой стену из префабов Brick шириной 4 кирпича и высотой 5 кирпичей.
- В
Start()организуй циклcот 0 до 3, а внутри него —rот 0 до 4. - Во внутреннем цикле вызови
Instantiate(brickPrefab, new Vector3(-1.5f + c, 0.25f + r * 0.5f, 0), Quaternion.identity, transform). Последний аргумент делает каждый кирпич дочерним объектом Wall.
Нажми «Играть»: на земле появится стена из 20 кирпичей. Затем нажми «Проверить».
Попробуйте сами
using UnityEngine;
public class WallBuilder : MonoBehaviour
{
public GameObject brickPrefab;
void Start()
{
// 4 столбца и 5 рядов кирпичей, каждый из которых — дочерний объект этого Wall
}
}
Все уроки раздела Основы скриптинга в Unity
1Основы C# в Unity
Привет, UnityПеременныеДля дробных чисел нужна fТекст в консолиПеременные, которые запоминаютЕсли и иначеСравнение чиселПовторение: сборщик монет7Циклы и методы
Повторение с forЦиклы внутри цикловНапишите методМетоды, которые возвращают значениеМассивыПовторение: лестница10Поиск объектов
Поиск по имениТегиПоиск по типуСсылки лучше поискаNull в UnityПовторение: ближайшая монета13Проект: уворачиваемся от блоков
БегунБлоки с неба2Заставь двигаться
Размести кубДвигай каждый кадрПоворачивай каждую секундуУправляй клавишамиПовторение: веди куб5Векторы
Сложение векторовНаправленияЛокальное и мировое пространствоСкорость по диагоналиРасстояние между объектамиVector3 — это структураПовторение: пилот дрона8Игровые объекты и компоненты
Ссылки в InspectorПолучение компонентаОтсутствующие компонентыДобавление компонентаRequireComponentПоказ и скрытиеПовторение: выключатель света11Префабы и создание объектов
Префабы и InstantiateСпавн по таймеруСпавн в сеткеСписки объектовУбрать последний созданныйDestroyСлучайный спавнПовторение: фейерверкиПотренируйтесь самостоятельно: Песочница Unity