Спавн по таймеру
Часть раздела Основы скриптинга в Unity путешествия по Unity на Coddy. Урок 63 из 85.
Спавнеру, который создаёт что-либо каждые несколько секунд, нужен таймер. 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.
Задание
СреднеСоздавай ящик каждые interval секунд (2 в Inspector).
- Добавь поля
float timer;иint count;. ВUpdate()прибавляйTime.deltaTimeкtimer. - Когда
timer >= interval, вызовиInstantiate(boxPrefab, transform.position, Quaternion.identity);и вычтиintervalизtimer. - Затем прибавь 1 к
countи выведи в журнал"Box " + count.
Нажми «Играть»: ящик падает каждые 2 секунды, а в Console отображаются счётчики Box 1, Box 2. Затем нажми «Проверить».
Попробуйте сами
using UnityEngine;
public class BoxDropper : MonoBehaviour
{
public GameObject boxPrefab;
public float interval = 1f;
void Update()
{
// Каждые interval секунд: создать коробку и записать в журнал "Box 1", "Box 2"...
}
}
Все уроки раздела Основы скриптинга в Unity
1Основы C# в Unity
Привет, UnityПеременныеДля дробных чисел нужна fТекст в консолиПеременные, которые запоминаютЕсли и иначеСравнение чиселПовторение: сборщик монет7Циклы и методы
Повторение с forЦиклы внутри цикловНапишите методМетоды, которые возвращают значениеМассивыПовторение: лестница10Поиск объектов
Поиск по имениТегиПоиск по типуСсылки лучше поискаNull в UnityПовторение: ближайшая монета13Проект: уворачиваемся от блоков
БегунБлоки с неба2Заставь двигаться
Размести кубДвигай каждый кадрПоворачивай каждую секундуУправляй клавишамиПовторение: веди куб5Векторы
Сложение векторовНаправленияЛокальное и мировое пространствоСкорость по диагоналиРасстояние между объектамиVector3 — это структураПовторение: пилот дрона8Игровые объекты и компоненты
Ссылки в InspectorПолучение компонентаОтсутствующие компонентыДобавление компонентаRequireComponentПоказ и скрытиеПовторение: выключатель света11Префабы и создание объектов
Префабы и InstantiateСпавн по таймеруСпавн в сеткеСписки объектовУбрать последний созданныйDestroyСлучайный спавнПовторение: фейерверкиПотренируйтесь самостоятельно: Песочница Unity