Найти в Дзене
MLLM

Рандомный спавн объектов в определённой области в Unity3D/2D

Всем привет! Я ведущий программист команды PYSON. Мой основной язык C#. Работаю с игровыми движками Unity и Unreal Engine. В данной статье я вам расскажу про возможность реализации рандомного создании объектов в определённой области. Данную область можно будет самостоятельно настраивать как вам угодно! Ладна приступим! В проекте создаём пустой объект и называем его как нам угодно! Внимание! Пустышка является 0й координатой для определение области. Создадим скрипт и перейдем в него для его написания, подготовка у нас завершена! Как обычно изначально создаём переменные: public int Point --- указываем количество предметов для рандома. public GameObject[] HItems --- создаём массив из предметов для их рандомного спавна. public float RandX --- показывает на каких координатах появился последний предмет public Vector2 whereToSpawn --- обязательная переменная для выявления координат. public float time --- устанавливаем количество времени до спавна следующего предмета. После создание всех пере

Всем привет! Я ведущий программист команды PYSON. Мой основной язык C#. Работаю с игровыми движками Unity и Unreal Engine. В данной статье я вам расскажу про возможность реализации рандомного создании объектов в определённой области. Данную область можно будет самостоятельно настраивать как вам угодно! Ладна приступим!

В проекте создаём пустой объект и называем его как нам угодно! Внимание! Пустышка является 0й координатой для определение области. Создадим скрипт и перейдем в него для его написания, подготовка у нас завершена!

Как обычно изначально создаём переменные:

-2

public int Point --- указываем количество предметов для рандома.

public GameObject[] HItems --- создаём массив из предметов для их рандомного спавна.

public float RandX --- показывает на каких координатах появился последний предмет

public Vector2 whereToSpawn --- обязательная переменная для выявления координат.

public float time --- устанавливаем количество времени до спавна следующего предмета.

После создание всех переменных начинаем прописывать таймер! Коль он в нашем скрипте играет далеко не последнею функцию.

-3

Код максимально простой! С помощью timer -= Time.deltaTime говорим программе отнимать от значение таймера единицу каждую секунду. Затем простая проверка. Указываем, что если значение таймера станет меньше или равно нулю, то тогда спавним наш объект и приравниваем значение таймера к значении заранее поставленного времени. Пример как это должно выглядеть:

-4

Затем пишем основной скрипт на спавн предметов. Так сказать пишем сердце нашей программы!

-5

На деле всё проще чем кажется на первый взгляд! Сперва переменную Point приравниваем к рандому. Затем делаем проверку на рандом числа по переменной Point и если где то у нас значение будет положительно, то тогда выполняем следующие действия: в RandX = Random.Range(-10.8f, 10.8f) --- рандомно выбираем значение координат. Это самая важная часть кода! её придётся настраивать в ручную! Или модифицировать скрипт добавив ещё одни переменные, но тут уже кому как удобнее.

Вот от сюда будут браться значения:

-6

Далее просто создаём вектор двухмерной плоскости(работает и в 3D), а уже после не менее ответственная часть! Мы этой стоечкой Instantiate(HItems[0], whereToSpawn, Quaternion.identity) создаём сам объект! Сперва указываем предмет спавна, затем координаты, а затем поворот.

Всё дальше кидаем скрипт на пустышку, настраиваем и радуемся)

Пример работы скрипта: