87

Unity3d. Object Pool

Доброго времени суток!

Весь материал из этого поста в одном unity package: https://drive.google.com/open?id=0ByezjEHgcxecSDN6OHE5akRYZm...

Сегодня постараюсь объяснить как сделать объектный пул в Unity3d. Он нужен для того чтобы не создавать новых объектов на сцене, а использовать уже существующие. Например если мы делаем игру-раннер, где справа налево у нас проезжают препятствия. Чтобы не создавать новые, мы используем уже те которые улетели за экран, а не удаляем их.

Приступим. Для начала создадим скрипт Shape.

Он будет содержать информацию о времени жизни нашего объекта, его скорость. И опишем в нём метод передвижения.

Теперь создадим класс для объектного пула.

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

Теперь создадим контроллер наших объектов, который будет полностью контролировать наши объекты.

Теперь создадим объект, в моём случае это спрайт. Кидаем на него скрипт Shape.

И создаём из него префаб.

Создаём пустой объект и кидаем на него ShapePool и ShapesController. В ShapePool указываем наш префаб. Примерно всё должно выглядеть так:

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

Спасибо за внимание! Если вам понравился пост, и хотите ещё, то можете предлагать тему для следующего поста в комментариях.

Правила сообщества

ОБЩИЕ ПРАВИЛА:

- Уважайте чужой труд и используйте конструктивную критику

- Не занимайтесь саморекламой, пишите качественные и интересные посты

- Никакой политики


СТОИТ ПУБЛИКОВАТЬ:

- Посты о Вашей игре с историей её разработки и описанием полученного опыта

- Обучающие материалы, туториалы

- Интервью с опытными разработчиками

- Анонсы бесплатных мероприятий для разработчиков и истории их посещения;
- Ваши работы, если Вы художник/композитор и хотите поделиться ими на безвозмездной основе

НЕ СТОИТ ПУБЛИКОВАТЬ:

- Посты, содержащие только вопрос или просьбу помочь
- Посты, содержащие только идею игры

- Посты, единственная цель которых - набор команды для разработки игры

- Посты, не относящиеся к тематике сообщества

Подобные посты по решению администрации могут быть перемещены из сообщества в общую ленту.

ЗАПРЕЩЕНО:

- Публиковать бессодержательные посты с рекламой Вашего проекта (см. следующий пункт), а также все прочие посты, содержащие рекламу/рекламные интеграции

- Выдавать чужой труд за свой

Подобные посты будут перемещены из сообщества в общую ленту, а их авторы по решению администрации могут быть внесены в игнор-лист сообщества.


О РАЗМЕЩЕНИИ ССЫЛОК:

Ссылка на сторонний ресурс, связанный с игрой, допускается только при следующих условиях:

- Пост должен быть содержательным и интересным для пользователей, нести пользу для сообщества

- Ссылка должна размещаться непосредственно в начале или конце поста и только один раз

- Cсылка размещается в формате: "Страница игры в Steam: URL"

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества