Mathf.PingPong от 1 до 0 - PullRequest
1 голос
/ 05 мая 2020

Я создал помощник для PingPong от 1 до 0, но мне трудно его инвертировать, чтобы значение пошло от 1 до 0.

Ниже вы можете увидеть код, я сейчас пользуюсь. Я тоже не уверен, возможно ли это вообще.

_lerpPulse = PingPong(Time.time * 0.5f, 0f, 1f);

И помощник

float PingPong(float aValue, float aMin, float aMax)
{
    return Mathf.PingPong(aValue, aMax - aMin) + aMin;
}

Заранее спасибо!

1 Ответ

1 голос
/ 05 мая 2020

Mathf.PingPong создает такой график enter image description here Итак, чтобы начать с пика, вы можете добавить расстояние до пика по оси x к параметру времени, который будет sqrt ( 2) / 2 * длина, или 0,707 * длина

float PingPong1To0(float aValue, float aMin, float aMax)
{
    float offset 0.707f *  (aMax - aMin); // sqrt(2)/2
    return Mathf.PingPong(aValue +offset, aMax - aMin) + aMin;
}

Должно попасть в падающую сторону этого треугольника

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...