Часть 7 — Очистка проекта и заключительные шаги

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

Наш проект в основном завершен, но я хотел бы добавить еще одну переменную в шейдер и сделать значения шейдера настраиваемыми внутри редактора. Во-первых, внутри подшейдера мы собираемся изменить все наши статические переменные, чтобы они были нестатическими. Мы также собираемся добавить новую переменную в конец списка под названием _WaveSpeed. Этот раздел вашего подшейдера должен выглядеть так.

Задание «Таинственное исчезновение»

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

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

Далее нам нужно включить _WaveSpeed в наш расчет вершин. Добавьте сюда.

Фантастика! Теперь наш шейдер завершен, и все значения конфигурации можно редактировать в инспекторе. Я попытался включить некоторые разумные значения по умолчанию для интересного эффекта желе, но не стесняйтесь играть со значениями и находить свои собственные интересные эффекты. Чтобы найти эти значения в редакторе, выберите сферу внутри редактора Unity и разверните компонент JellyMaterial в нижней части инспектора. Окончательный код шейдера и скрипта вставлен ниже для вашего удобства.

Вы также можете найти окончательный код вместе с примером модели в магазине активов.

JellyShader.shader

JellyClickReceiver.cs

Первоначально опубликовано на сайте heliosinteractive.com 15 марта 2018 г.