gpt4 book ai didi

c# - Unity 的 Mathf.PingPong 实际上是做什么的?

转载 作者:行者123 更新时间:2023-12-04 00:20:09 40 4
gpt4 key购买 nike

Unity 文档 Mathf.PingPong说:

PingPongs the value t, so that it is never larger than length and never smaller than 0.



我知道它在 0 和 length 之间旋转一个值,我不明白的是值是多少 t它与 PingPong 的工作方式有什么关系?

如果我设置 t对于任何常数,我总能得到那个值
void Update()
{
// always prints: 1
print(Mathf.PingPong(1f, 1f));

// always prints 0
print(Mathf.PingPong(0f, 1f));
}

每次我看到示例中使用 PingPong 时,它都有 Time.time用于 t值(或一些基于 Time.time 的数学)。为什么?

我见过的唯一解释来自这个问题: c# Unity Mathf.PingPong not working这意味着 t 的值必须总是在变化,但同样不清楚为什么或发生了什么。

那么,什么是 Mathf.PingPong实际做 t/值是多少 t实际上是为了,以及如何正确使用该功能?

最佳答案

所以Mathf.PingPong()使用函数调用 Mathf.Repeat()
这些可能用作补间/缓动辅助函数

所以Mathf.Repeat(float t, float length)将创建这样的图表
enter image description here
哪里length是每条线段的长度,t是函数的 X 值(返回值是图形上对应的 Y 位置)

什么 Mathf.PingPong(float t, float length)看起来更像这样
enter image description here
又在哪里length描述每个三角形的高度和 t给出 X 位置

一个常见的用例是我们希望一些值随着这个图而改变,就像沿着它稳步增加的 X 值走一样,并在每一步取 Y 的值。
最简单的方法是通过 Time.time在作为 t参数,它将获得该函数在相应 X 位置的值。

float Y = Mathf.PingPong(Time.time,Max_Y_Value);

关于c# - Unity 的 Mathf.PingPong 实际上是做什么的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61306895/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com