Перейти к содержимому

Как сделать рандомный спавн объектов в unity

  • автор:

Как сделать рандомный спавн разных объектов?

Всем привет, делаю игру на подобе Flappy Bird.
Нашел гайды по созданию этой игры, и оттуда просто скопировал код, по которому спауниться один тип преград, то есть их появление на рандомной высоте.
Но я бы еще хотел внедрить несколько разновидностей этих преград,
то есть, периодичное появление каждой их разновидности. Как это сделать, подскажите пожалуйста.

P.S. Я вообще новичок в этом, ниже приложу код где я прописал случайную высоту спауна барьера.

Рандомный спавн объектов 2д
Хей хей хей. Кто может подсказать про рандомный спавн объектов? Хотелось бы что бы спавнилось на.

Рандомный спавн 3D объектов
Всем привет, помогите мне, напишите пожалуйста скрипт который спавнил объекты рандомная по.

Как сделать рандомный спавн объекта вокруг экрана и сделать его движение?
Создаю игру про астероиды и космический корабль, нужно сделать спавн астероидов вокруг экрана и.

Рандомный спавн врагов в разных точках
Доброго времени суток. Такой вопрос. В игре необходимо, что бы разные типы врагов спавнились в пяти.

Как сделать рандомный спавн комнат как в Rogue Legacy
Помогите сделать рандомный спавн комнат как в (Rogue Legacy) в unity 2D

Лучший ответСообщение было отмечено Paxis как решение

Решение

в инспекторе в массив pipe перетягивай нужные геймобджекты или поиском по тегу типа
FindGameObjectsWithTag в старте

Добавлено через 2 минуты
случайная высота у тебя и так есть

Подскажите пж что делать.

Ошибка CS1061 "GameObject[]" не содержит определения "length", и не удалось найти доступный метод расширения "length", принимающий тип "GameObject[]" в качестве первого аргумента (возможно, пропущена директива using или ссылка на сборку).

Не знаю как сделать спавн объектов
Не могу придумать как сделать спавн объектов по точкам, так чтобы они не спавнились друг на друге.

Как сделать спавн объектов реагирующий на звуки?
Добрый день! Как сделать спавн препятствий в зависимости от звуковых волн, хороший пример танцующие.

Как сделать спавн объектов разного размера?
Есть префаб, этот префаб это камета, от камет надо уварачиваться, нужно сделать, так чтобы они.

Unity 2D C# Рандомный спавн
Проблема в том что, у меня есть монетка и игрок При столкновении игрока с монеткой она должна.

Рандомный спавн на неровном terrain
здравствуйте. собственно в чем проблема: как сделать рандомный спавн предметов на поверхности.

Рандомный спавн деревьев в Unity2D TDS
Привет. Пытаюсь сделать рандомный спавн деревьев на карте, но определенное количество, но сделать.

Как сделать случайную генерацию объектов по координатам заданным в массиве unity?

MrMureno

Код не точный , а просто показать принцип
— цилк — по количеству объектов , которые хотим сгенерировать.
— выбирает рандомную позицию в списке
— генерируем в этой позиции объект
— удаляем эту позицию из списка (в этом месте больше уже не сгенерируем, и в следующих раз выбирать будет из меньшего числа доступных позиций)

только проверьте что точек размещения в списке больше, чем число объектов которые хотите сгенерировать.
и еще можно делать копию списка , так как после удаления из него элементов в процессе генерации — повторно его уже не используешь.

  • Facebook
  • Вконтакте
  • Twitter

MrMureno

оо все похенько.
С чего вы взяли что js код у меня? Это все си шарп ваш любимый.

и что у вас со знанием структур данный. массив от списка чем отличается?? почитайте плиз где нибудь.
Я специально указал и расписал что используется СПИСОК, и что его размер по ходу дела УМЕНЬШАЕТСЯ.

public List <Transform> spawnPoints;
и не забыть using System.GenericCollection;

MrMureno

и еще раз это не разовая генерация/расстановка врагов по точкам.

то вам надо по сути при создании врага запоминать куда он создался (может в скрипт врага записывать или куда еще)
и делать выборку из вашего списка с исключением уже занятых (запомненных, точек)

Except(МАССИВ УЖЕ ЗАНЯТЫХ ТРАНСФОРМОВ);

и тогда после смерти врага, зная какое место он занимал — удалив его из массива занятых — сможете освободить место.

но это все лишь принципы, как это сделать, а вы судя по всему где то пропустили курс основ программирования как такового(

BasmanovDaniil

Простейший способ выбора точки спавна — это дёргать Random.Range до тех пор, пока не получите нужное количество противников.

Важно понимать, что рандом это рандом, а значит враги будут распределены по всем доступным точкам спавна равномерно, а это не всегда то, что требуется для геймплея. Косвенно плотностью спавна можно управлять добавлением нескольких близких точек, но лучше для этого использовать взвешенный рандом.

Даже со взвешенным рандомом легко может случиться так, что все враги заспавнятся в одном месте, поэтому лучше использовать какой-то алгоритм ротации точек спавна. Для этого можно использовать Shuffle Bag, либо можно просто выкидывать использованные точки спавна из списка.

Unity 5. Рандомное появление объектов. + Видео

random

Уроки

Как создать появление объектов в случайном месте при старте сцены.

В этом уроке я хочу показать вам как создать скрипт, при помощи которого объекты на сцене будут появляться в рандомном т.е. в случайном месте, при старте сцены.

Для начала подготовим сцену, создадим плоскость, на которой будем размещать наши объекты.

Изменим размеры плоскости, к примеру: 50,1,50.

panel

Добавим два объекта сферу и куб, эти объекты и будут появляться на сцене в случайных местах.

Сохраним эти объекты в префаб.

kubsphere

Для отображения сцены можно добавить стандартного персонажа с камерой, а стандартную камеру удалить со сцены.

personaj

Добавим пустой объект, на нем будет находиться наш скрипт.

spown

Создадим С# скрипт и назовем его SpownObject, напишем в нем такой код:

Добавим этот скрипт на пустышку и переместим в строки kub и sphere наши префабы куба и сферы. Зададим координаты центра 1,1,1. В строке size укажем координаты диапазона, в которых будут появляться объекты, к примеру: 10,0,10.

spawnobject

Можем запустить игру и проверить, при запуске сцены объект куб и сфера будут появляться в случайном месте в заданном диапазоне.

Random spawning in Unity (C#)

Hi I am making my first unity game in 2D and I have this code now. I have 3 different GameObjects (call them a, b , c) in the array arrows and i would want to know which one of them is spawned ( so i can use it in another function) and delete the previous one from the scene. Now it just spawns one GameObject on another every 5 seconds and I don’t know which one of them did it randomly spawn. Any idea?

I.B's user avatar

2 Answers 2

To keep track of what objects you instantiated you could create a List of GameObject and then when you instantiate an object you can add it in the List . Then you can use any GameObject in that list to do whatever you need.

And for spawning object like that it would be better to use InvokeRepeating , you can pass it the repeat rate and when you want it to start. More information on InvokeRepeating

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Школа онлайн с государственным аттестатом