Создание объектов по таймеру
Часть раздела Основы скриптинга в Unity путешествия по Unity на Coddy. Урок 49 из 67.
Спавнеру, который создаёт что-то каждые несколько секунд, нужен таймер. Time.deltaTime — это время, которое занял последний кадр, поэтому, если прибавлять его к полю в каждом Update(), получится количество прошедших секунд. Когда сумма достигает интервала, создайте объект и вычтите интервал из суммы.
Этот фонтан выбрасывает каплю воды каждые полсекунды:
public GameObject dropPrefab;
public float interval = 0.5f;
float timer;
void Update()
{
timer += Time.deltaTime;
if (timer >= interval)
{
Instantiate(dropPrefab, transform.position, Quaternion.identity);
timer -= interval;
}
}timer -= interval сохраняет остаток: если кадр завершился на отметке 0.51 секунды, следующие полсекунды отсчитываются от 0.01, и капли появляются точно в такт. timer = 0 отбросит этот остаток, поэтому каждая капля будет появляться немного позже, и задержка будет накапливаться в течение долгой игры. timer — приватная переменная, потому что никому не нужно задавать её в Inspector.
Задание
СреднеDropper должен сбрасывать коробку каждые interval секунд (в Inspector указано 2): первую коробку — через 2 секунды после нажатия Play, затем ещё по одной каждые 2 секунды.
- Создавай каждую коробку в позиции сбрасывателя, без поворота.
- После каждой коробки выводи её номер:
Box 1,Box 2и так далее.
Нажми Play и наблюдай, как растёт стопка, затем нажми Check.
Попробуйте сами
using UnityEngine;
public class BoxDropper : MonoBehaviour
{
public GameObject boxPrefab;
public float interval = 1f;
void Update()
{
// Каждые interval секунд: создавайте ящик и выводите в журнал "Box 1", "Box 2"...
}
}
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы скриптинга в Unity
1Ваш первый скрипт
Привет, UnityРазместите кубДвигайте каждый кадрПоворачивайте каждую секундуУправляйте клавишамиПовторение: управляйте кубом2Инспектор
Поля инспектораSerializeFieldЧисла с плавающей точкой и MathfАтрибуты инспектораПовторение: лифт5Преобразования и иерархия
Родители и детиМасштабПосмотри на объектыДвигайся к точкеПовторение: Луна на орбите6Игровые объекты и компоненты
Ссылки в InspectorПолучение компонентаОтсутствующие компонентыДобавление компонентаRequireComponentПоказать и скрытьПовторение: выключатель света9Префабы и создание объектов
Префабы и InstantiateСоздание объектов по таймеруСоздание объектов в сеткеСписки объектовDestroyСлучайное создание объектовПовторение: фейерверки