Dontre

Dontre

Пикабушник
Дата рождения: 29 сентября
573 рейтинг 21 подписчик 7 подписок 4 поста 3 в горячем
Награды:
10 лет на Пикабу
87

Unity3d. Object Pool

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

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

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

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

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

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

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

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

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

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

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

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

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

Показать полностью 8
71

Unity3D. Тряска R канала.

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

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

Unity package с содержимым этого урока: https://drive.google.com/open?id=0ByezjEHgcxecRXRCbnpSSGhwQm...

Советую почитать про шейдеры и их устройство.

Ну что же, приступим. Для начала создадим новый шейдер постэффекта: Create->Shader->ImageEffectShader.

Называем его как хотим

Открываем его и видим стандартную заготовку, которая инвертирует цвет.

Что же мы будем делать? У текстуры которая рендерит нам камера, у каждого пикселя смещать его красную составляющую.

Добавляем параметры смещения по обоим координатам и обзовём их _OffsetX и _OffsetY.

Перед функцией самого шейдера указываем переменные в которые будут идти значения из параметров. И в саму функцию добавляем такие строки:

Создаём скрипт который будет применять данный эффект на нашу камеру.

В него добавляем такие строки

Кидаем этот скрипт на камеру. Изменяя значения offsetX и offsetY, наблюдаем такой результат.

Создаём новый скрипт, который будет контролировать саму тряску и кидаем его на камеру.

Создадим кнопку, добавим ей вызов метода SetTimer и укажем сколько времени должен длится эффект. Запускаем, нажимаем на кнопку и наслаждаемся результатом. На UI элементах наш эффект не будет действовать если у Canvas режим рендера будет Overlay, поскольку он будет отрендерен после всех камер на сцене.

Так же такой эффект можно попробовать и с другими каналами RGB. 

Благодарю за внимание!

Показать полностью 10
Отличная работа, все прочитано!

Темы

Политика

Теги

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

Сообщества

18+

Теги

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

Сообщества

Игры

Теги

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

Сообщества

Юмор

Теги

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

Сообщества

Отношения

Теги

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

Сообщества

Здоровье

Теги

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

Сообщества

Путешествия

Теги

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

Сообщества

Спорт

Теги

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

Сообщества

Хобби

Теги

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

Сообщества

Сервис

Теги

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

Сообщества

Природа

Теги

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

Сообщества

Бизнес

Теги

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

Сообщества

Транспорт

Теги

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

Сообщества

Общение

Теги

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

Сообщества

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

Теги

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

Сообщества

Наука

Теги

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

Сообщества

IT

Теги

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

Сообщества

Животные

Теги

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

Сообщества

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

Теги

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

Сообщества

Экономика

Теги

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

Сообщества

Кулинария

Теги

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

Сообщества

История

Теги

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

Сообщества

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

Теги

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

Сообщества