Найти тему

Unity 2D. Ruby's Adventure. Part 29

Последний эффект - это эффект сбора коллекционного предмета здоровья, давайте кратко рассмотрим процесс его создания и использования.

Создайте новую систему частиц с именем PickupEffect. В основном разделе установите свойство Duration равным 3 и снимите флажок Looping.

Свойство Start Lifetime, время жизни частицы, установите в Random Between Two Constants и введите значения 0.5 и 1.

Свойство Start speed, начальная скорость, установите в Random Between Two Constants и введите значения 0.6 и 1.5.

Свойство Start Size, начальный размер задайте значения 0.4 и 0.8.

Свойство Start Rotation, угол поворота частиц при генерации, установите на Random Between Two Constants и задайте значения 0 и 360.

Свойству Emmiter Velocity Mode (режим скорости генерации) установите значение Transform.

Свойству Stop Action установите значение Destroy.

Настройки основного раздела
Настройки основного раздела

В разделе Emission параметру Rate over Time установите значение равным 0. Нажмите кнопку "+", чтобы добавить всплеск в разделе Burst, и задайте количество частиц равным 20.

Настройки раздела Emission
Настройки раздела Emission

В раздела Shape установите фигуру, которая ограничивает область генерации в Circle (круг) с радиусом 0.41.

Настройки раздела Shape
Настройки раздела Shape

Включите и откройте раздел Velocity Over Lifetime. Нажмите на поле «Speed Modifier» и выберите тип Curve (график). Настройте точки графика внизу инспектора как показано на слайде:

Настройки раздела Velocity Over Lifetime
Настройки раздела Velocity Over Lifetime

Включите раздел Color over Lifetime, цвет с течением жизни, и установите параметр прозрачности в конце жизни частицы равным 0.

Настройки раздела Color over Lifetime
Настройки раздела Color over Lifetime

Включите и откройте раздел Size Over Lifetime. Нажмите на поле «Size» и настройте кривую, которая появится внизу инспектора, как показано на скрине. Левое значение стоит примерно на значении 0.5.

Настройки раздела Size Over Lifetime
Настройки раздела Size Over Lifetime

Включите и откройте раздел Rotation Over Lifetime. Задайте значение Angular Velocity (скорость поворота) равным 90.

Настройки раздела Rotation Over Lifetime
Настройки раздела Rotation Over Lifetime

Включите и откройте раздел Texture Sheet Animation. Установите режим «Sprites», добавьте еще два спрайта и перетащите последние спрайты из атласа эффектов в эти поля:

Настройки раздела Texture Sheet Animation
Настройки раздела Texture Sheet Animation

В разделе Renderer подкорректируйте значение Order In Layer, например до 10, чтобы эффект всегда отображался поверх других объектов.

Создайте префаб из этой системы частиц и удалите ее со сцены.

Теперь в скрипт RubyController добавьте публичную переменную pickupEffect типа ParticleSystem и сохраните скрипт. В инспекторе персонажа Ruby появится новое свойство, куда перетащите префаб эффекта сбора. Почему мы делаем это в скрипте ягоды? Потому что при сборе ягода пропадает, а значит не эффект не сможет отобразиться.

Теперь в метод ChangeHealth к условию проверки значения amount добавьте блок "иначе", в котором создайте эффект сбора:

else
{
Instantiate(pickupEffect, transform.position + Vector3.up * 0.5f, Quaternion.identity);
}

Проверьте скрипт и сохраните его:

Скрипт персонажа
Скрипт персонажа

Запустите игру и проверьте, что все работает верно. Не забудьте снять здоровье у Ruby прежде, чем попробуете собрать ягоду: