Вторник, 26 Ноября 2024, 11:43

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Как сделать равномерное затухание полоски HP (UNITY3D)
killing002Дата: Четверг, 14 Марта 2019, 21:41 | Сообщение # 1
почетный гость
Сейчас нет на сайте
Всем хай ..

Проблема в следующем --> Есть полоска, допустим hp. При нажатии на экран полоска должна равномерно уходить. Но при использовании Matf.Lerp или Math.SmoothStep, происходит замедление на концах. ТО есть, полоска равномерно уходит в середине, но на концах, эта скорость падает. В результате : допустим полоска заполнена на 100%, то до 90% полоска будет падать с более меньшей скоростью, чем от 90% до 10%. И от 10% до 0% скорость будет также медленной.


123

Сообщение отредактировал killing002 - Четверг, 14 Марта 2019, 21:42
drcrackДата: Четверг, 14 Марта 2019, 23:25 | Сообщение # 2
старожил
Сейчас нет на сайте
Код
image.fillAmount = Mathf.MoveTowards(image.fillAmount, 0, Time.deltaTime * 0.5f);


через Lerp тоже можно но не так как ты пытаешься


Сообщение отредактировал drcrack - Четверг, 14 Марта 2019, 23:25
killing002Дата: Пятница, 15 Марта 2019, 09:58 | Сообщение # 3
почетный гость
Сейчас нет на сайте
Спасибо мсье. Это и вправду работает.

123
seamanДата: Пятница, 15 Марта 2019, 10:15 | Сообщение # 4
старожил
Сейчас нет на сайте
Цитата
на концах, эта скорость падает

Это если одну из точек брать текущую. Нужно лерпить к крайним точкам.
Mathf.Lerp(float a, float b, float t) получаем a + (b-a) * t, где 0 <= t >= 1.
ArtemSДата: Пятница, 15 Марта 2019, 16:24 | Сообщение # 5
почетный гость
Сейчас нет на сайте
killing002, давно не тестил, но вроде Mathf.SmoothDamp равномерно меняет

хуяк, хуяк и в продакшн
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг