Последний эффект - это эффект сбора коллекционного предмета здоровья, давайте кратко рассмотрим процесс его создания и использования.
Создайте новую систему частиц с именем 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.
В раздела Shape установите фигуру, которая ограничивает область генерации в Circle (круг) с радиусом 0.41.
Включите и откройте раздел Velocity Over Lifetime. Нажмите на поле «Speed Modifier» и выберите тип Curve (график). Настройте точки графика внизу инспектора как показано на слайде:
Включите раздел Color over Lifetime, цвет с течением жизни, и установите параметр прозрачности в конце жизни частицы равным 0.
Включите и откройте раздел Size Over Lifetime. Нажмите на поле «Size» и настройте кривую, которая появится внизу инспектора, как показано на скрине. Левое значение стоит примерно на значении 0.5.
Включите и откройте раздел Rotation Over Lifetime. Задайте значение Angular Velocity (скорость поворота) равным 90.
Включите и откройте раздел Texture Sheet Animation. Установите режим «Sprites», добавьте еще два спрайта и перетащите последние спрайты из атласа эффектов в эти поля:
В разделе Renderer подкорректируйте значение Order In Layer, например до 10, чтобы эффект всегда отображался поверх других объектов.
Создайте префаб из этой системы частиц и удалите ее со сцены.
Теперь в скрипт RubyController добавьте публичную переменную pickupEffect типа ParticleSystem и сохраните скрипт. В инспекторе персонажа Ruby появится новое свойство, куда перетащите префаб эффекта сбора. Почему мы делаем это в скрипте ягоды? Потому что при сборе ягода пропадает, а значит не эффект не сможет отобразиться.
Теперь в метод ChangeHealth к условию проверки значения amount добавьте блок "иначе", в котором создайте эффект сбора:
else
{
Instantiate(pickupEffect, transform.position + Vector3.up * 0.5f, Quaternion.identity);
}
Проверьте скрипт и сохраните его:
Запустите игру и проверьте, что все работает верно. Не забудьте снять здоровье у Ruby прежде, чем попробуете собрать ягоду: