Skip to main content

数学表达式

所有支持的函数

deg => x * Mathf.Rad2Deg
rad => x * Mathf.Deg2Rad
sin => Mathf.Sin
cos => Mathf.Cos
tan => Mathf.Tan
asin => Mathf.Asin
acos => Mathf.Acos
atan => Mathf.Atan
atan2 => Mathf.Atan2
noise => Mathf.PerlinNoise
sqrt => Mathf.Sqrt
abs => Mathf.Abs(float)
min => Mathf.Min(float, float)
max => Mathf.Max(float, float)
pow => Mathf.Pow(float, float)
exp => Mathf.Exp
log => Mathf.Log(float, float)
ln => Mathf.Log(float)
log10 => Mathf.Log10
ceil => Mathf.Ceil
floor => Mathf.Floor
round => Mathf.Round
sign => Mathf.Sign
clamp => Mathf.Clamp(float, float, float)
clamp01 => Mathf.Clamp01
lerp => Mathf.Lerp(float, float, float)
ulerp => Mathf.LerpUnclamped(float, float, float)
alerp => Mathf.LerpAngle(float, float, float)
smoothstep => Mathf.SmoothStep(float, float, float)
repeat => Mathf.Repeat(float, float)
pingpong => Mathf.PingPong(float, float)
ilerp => Mathf.InverseLerp(float, float, float)
rand => Random.Range(float, float)
randint => Random.Range(int, int)

详细表格

一元函数

函数Unity 代码描述
sqrt(x)Mathf.Sqrt(x)返回 x 的平方根。
abs(x)Mathf.Abs(x)返回 x 的绝对值。
ceil(x)Mathf.Ceil(x)返回大于或等于 x 的最小整数。
floor(x)Mathf.Floor(x)返回小于或等于 x 的最大整数。
round(x)Mathf.Round(x)将 x 银行家舍入到最近的整数。
sign(x)Mathf.Sign(x)返回 x 的符号(±1.0)。

三角函数

函数Unity 代码描述
deg(x)x * Mathf.Rad2Deg从弧度制转换为角度制。
rad(x)x * Mathf.Deg2Rad从角度制转换为弧度制。
sin(x)Mathf.Sin(x)返回给定弧度角 x 的正弦值。
cos(x)Mathf.Cos(x)返回给定弧度角 x 的余弦值。
tan(x)Mathf.Tan(x)返回给定弧度角 x 的正切值。
asin(x)Mathf.Asin(x)返回 x 的反正弦值,以弧度表示。
acos(x)Mathf.Acos(x)返回 x 的反余弦值,以弧度表示。
atan(x)Mathf.Atan(x)返回 x 的反正切值,以弧度表示。
atan2(x, y)Mathf.Atan2(x, y)返回 v1=(0,1) 与 v2=(x,y) 的夹角,以弧度表示。

指数和对数函数

函数Unity 代码描述
pow(x, y)Mathf.Pow(x, y)返回 x 的 y 次幂。
exp(x)Mathf.Exp(x)返回 e 的 x 次幂。
log(x, y)Mathf.Log(x, y)返回以 y 为底 x 的对数。
ln(x)Mathf.Log(x)返回 x 的自然对数(底数 e)。
log10(x)Mathf.Log10(x)返回 x 的以 10 为底的对数。

插值函数

函数Unity 代码描述
lerp(x, y, t)Mathf.Lerp(x, y, t)在 x 和 y 之间通过 t 进行线性插值。
ulerp(x, y, t)Mathf.LerpUnclamped(x, y, t)在 x 和 y 之间通过 t 进行线性插值,不对插值结果进行限制。
alerp(x, y, t)Mathf.LerpAngle(x, y, t)在角度 x 和 y 之间通过 t 进行插值。
smoothstep(x, y, t)Mathf.SmoothStep(x, y, t)在 x 和 y 之间在 t 处进行平滑插值。

其他函数

函数Unity 代码描述
min(x, y)Mathf.Min(x, y)返回两个值中较小的一个。
max(x, y)Mathf.Max(x, y)返回两个值中较大的一个。
noise(x, y)Mathf.PerlinNoise(x, y)为给定的坐标 x 和 y 生成 Perlin 噪声。
clamp(x, min, max)Mathf.Clamp(x, min, max)将值 x 限制在 [min, max] 范围内。
clamp01(x)Mathf.Clamp01(x)将值 x 限制在 [0, 1] 范围内。
repeat(t, length)Mathf.Repeat(t, length)重复 t,使其永远不大于 length 且永远不小于 0。
pingpong(t, length)Mathf.PingPong(t, length)对值 t 进行乒乓操作,使其永远不大于 length 且永远不小于 0。
ilerp(from, to, t)Mathf.InverseLerp(from, to, t)计算产生范围 [from, to] 内插值值的线性参数 t。
rand(min, max)Random.Range(min, max)返回一个介于 min(含)和 max(含)之间的随机浮点数。
randint(min, max)Random.Range(min, max)返回一个介于 min(含)和 max(不含)之间的随机整数。

URL

更多细节,可以查看:
HakuyaLabs/Mathfs: Expanded Math Functionality for Unity

作者

翻译者

上次更新于 2024.06.17