1

我已经创建了一个从 1 到 0 的 PingPong 助手,但是我很难将其反转,因此值从 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;
}

提前致谢!

4

1 回答 1

1

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;
}

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

于 2020-05-05T11:37:06.737 回答