Unity3D. Тряска R канала.
Всем доброго времени суток!
В первую очередь хочется поблагодарить всех кто сыграл в демку моей игры и оставил свои отзывы. В комментариях меня попросили объяснить как я сделал эффект проигрывания в своей игре.
Unity package с содержимым этого урока: https://drive.google.com/open?id=0ByezjEHgcxecRXRCbnpSSGhwQm...
Советую почитать про шейдеры и их устройство.
Ну что же, приступим. Для начала создадим новый шейдер постэффекта: Create->Shader->ImageEffectShader.
Называем его как хотим
Открываем его и видим стандартную заготовку, которая инвертирует цвет.
Что же мы будем делать? У текстуры которая рендерит нам камера, у каждого пикселя смещать его красную составляющую.
Добавляем параметры смещения по обоим координатам и обзовём их _OffsetX и _OffsetY.
Перед функцией самого шейдера указываем переменные в которые будут идти значения из параметров. И в саму функцию добавляем такие строки:
Создаём скрипт который будет применять данный эффект на нашу камеру.
В него добавляем такие строки
Кидаем этот скрипт на камеру. Изменяя значения offsetX и offsetY, наблюдаем такой результат.
Создаём новый скрипт, который будет контролировать саму тряску и кидаем его на камеру.
Создадим кнопку, добавим ей вызов метода SetTimer и укажем сколько времени должен длится эффект. Запускаем, нажимаем на кнопку и наслаждаемся результатом. На UI элементах наш эффект не будет действовать если у Canvas режим рендера будет Overlay, поскольку он будет отрендерен после всех камер на сцене.
Так же такой эффект можно попробовать и с другими каналами RGB.
Благодарю за внимание!










Лига Разработчиков Видеоигр
9.8K постов23.4K подписчик
Правила сообщества
ОБЩИЕ ПРАВИЛА:
- Уважайте чужой труд и используйте конструктивную критику
- Не занимайтесь саморекламой, пишите качественные и интересные посты
- Никакой политики
СТОИТ ПУБЛИКОВАТЬ:
- Посты о Вашей игре с историей её разработки и описанием полученного опыта
- Обучающие материалы, туториалы
- Интервью с опытными разработчиками
- Анонсы бесплатных мероприятий для разработчиков и истории их посещения;
- Ваши работы, если Вы художник/композитор и хотите поделиться ими на безвозмездной основе
НЕ СТОИТ ПУБЛИКОВАТЬ:
- Посты, содержащие только вопрос или просьбу помочь
- Посты, содержащие только идею игры
- Посты, единственная цель которых - набор команды для разработки игры
- Посты, не относящиеся к тематике сообщества
Подобные посты по решению администрации могут быть перемещены из сообщества в общую ленту.
ЗАПРЕЩЕНО:
- Публиковать бессодержательные посты с рекламой Вашего проекта (см. следующий пункт), а также все прочие посты, содержащие рекламу/рекламные интеграции
- Выдавать чужой труд за свой
Подобные посты будут перемещены из сообщества в общую ленту, а их авторы по решению администрации могут быть внесены в игнор-лист сообщества.
О РАЗМЕЩЕНИИ ССЫЛОК:
Ссылка на сторонний ресурс, связанный с игрой, допускается только при следующих условиях:
- Пост должен быть содержательным и интересным для пользователей, нести пользу для сообщества
- Ссылка должна размещаться непосредственно в начале или конце поста и только один раз
- Cсылка размещается в формате: "Страница игры в Steam: URL"