Mathf.PingPong 从 1 到 0

Mathf.PingPong from 1 to 0

我已经为 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;
}

提前致谢!

Mathf.PingPong 创建这样的图表 因此,要从峰值开始,您可以将沿 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;
}

应该击中那个三角形的下降边