Unity中的Mathf数学运算有哪些?
Mathf.Abs(f)绝对值
计算并返回指定参数 f 绝对值
例如:
// 输出 10
Debug.log(Mathf.Abs(-10))
Debug.log(Mathf.Abs(10))
Mathf.Sin正弦
static function Sin (f : float) : float
计算并返回以弧度为单位指定的角 f 的正弦值
Mathf.Asin反正弦
static function Asin (f : float) : float
以弧度为单位计算并返回参数 f 中指定的数字的反正弦值
Mathf.Cos余弦
static function Cos (f : float) : float
返回由参数 f 指定的角的余弦值
Mathf.Acos反余弦
static function Acos (f : float) : float
以弧度为单位计算并返回参数 f 中指定的数字的反余弦值。
Mathf.Approximately近似
static function Approximately (a : float, b: float) : bool
比较两个浮点数值,看它们是否非常接近, 返回bool值。由于浮点数值不精确,不建议使用等于来比较它们。例如,1.0==10.0/10.0也许不会返回true
if(Mathf.Approximately(1.0F, 10.0F / 10.0F))
{
Debug.log("true");
}
Mathf.Sqrt平方根
static function Sqrt (f : float) : float
计算并返回 f 的平方根
Mathf.SmoothStep平滑插值
static function SmoothStep (from : float,to : float, t : float) : float
和lerp类似,在最小和最大值之间的插值,并在限制处渐入渐出
public float min = 1f;
public float max = 15.0f;
void Update() {
transform.position= new Vector3(Mathf.SmoothStep(min, max, Time.time), 0, 0);
}
Mathf.CeilToInt最小整数
static function CeilToInt (f : float) : int
返回最小的整数,该整数大于或等于f
Mathf.FloorToInt最大整数
static function FloorToInt (f : float) :int
返回最大的整数,该整数小于或等于f
Mathf.Ceil上限值
static function Ceil (f : float) : float
返回 f 指定数字或表达式的上限值。数字的上限值是大于等于该数字的最接近的整数
例如:
// 输出 11
Debug.Log(Mathf.Ceil(10.2F));
//输出 -10
Debug.Log(Mathf.Ceil(-10.2F));
Mathf.Floor下限值
static function Floor (f : float) : float
返回参数 f 中指定的数字或表达式的下限值。下限值是小于等于指定数字或表达式的最接近的整数。
例如:
// 输出 10
Debug.Log(Mathf.Floor(10.2F));
//输出 -11
Debug.Log(Mathf.Floor(-10.2F));
Mathf.Clamp限制
static function Clamp (value : float, min :float, max : float) : float
限制value的值在min和max之间, 如果value小于min,返回min;如果value大于max,返回max,否则返回value
static function Clamp (value : int, min :int, max : int) : int
限制value的值在min和max之间,并返回value,同理
Mathf.Clamp01限制0~1
static function Clamp01 (value : float) :float
限制value在0,1之间并返回value。如果value小于0,返回0。如果value大于1,返回1,否则返回value
Mathf.Exp指数
static function Exp (power : float) : float
返回 e 的 power 次方的值。
Mathf.ClosestPowerOfTwo最近的二次方
static function ClosestPowerOfTwo (value :int) : int
返回距离value最近的2的次方数。
Mathf.Deg2Rad度转弧度 (只读)
static var Deg2Rad : float
度到弧度的转化常量。这等于(PI * 2) / 360。
Mathf.Mathf.Rad2Deg 弧度转度
static var Rad2Deg : float
弧度到度的转化常量。(只读)
这等于 360 / (PI * 2)。
Mathf.IsPowerOfTwo是否2的幂
static function IsPowerOfTwo (value : int): bool
如果该值是2的幂,返回true。
Debug.Log(Mathf.IsPowerOfTwo(5)); // false
Debug.Log(Mathf.IsPowerOfTwo(64)); // true
Mathf.Lerp插值
static function Lerp (from : float, to :float, t : float) : float
基于浮点数t返回a到b之间的插值,t限制在0~1之间。
当t = 0返回from,当t = 1 返回to。当t = 0.5 返回from和to的平均值
Mathf.LerpAngle插值角度
static function LerpAngle (a : float, b :float, t : float) : float
和Lerp的原理一样,当他们环绕360度确保插值正确。
a和b是代表度数。
public float minAngle = 0.0F;
public float maxAngle = 90.0F;
void Update()
{
floatangle = Mathf.LerpAngle(minAngle, maxAngle, Time.time);
transform.eulerAngles= new Vector3(0, angle, 0);
}
Mathf.SmoothStep平滑插值
static function SmoothStep (from : float,to : float, t : float) : float
和lerp类似,在最小和最大值之间的插值,并在限制处渐入渐出。
public float minimum = 10.0F;
public float maximum = 20.0F;
void Update() {
transform.position=newVector3(Mathf.SmoothStep(minimum,maximum, Time.time), 0, 0);
}
Mathf.Max最大值
static function Max (a : float, b : float): float
static function Max (params values :float[]) : float
返回两个或更多值中最大的值。
Mathf.Min最小值
static function Min (a : float, b : float): float
static function Min (params values :float[]) : float
返回两个或更多值中最小的值。
Mathf.MoveTowardsAngle移动角
static function MoveTowardsAngle(current :float, target : float,maxDelta:float): float
变量current和target是度数。为优化原因,maxDelta负值的不被支持,可能引起振荡。
Mathf.MoveTowards移向
static function MoveTowards (current :float, target : float, maxDelta : float) : float
改变一个当前值向目标值靠近。
这实际上和 Mathf.Lerp相同,而是该函数将确保我们的速度不会超过maxDelta。maxDelta为负值将目标从推离。
Mathf.PingPong乒乓 (做来回运动时常用到)
static function PingPong (t : float, length: float) : float
0到length之间往返。t值永远不会大于length的值,也永远不会小于0。
返回值将在0和length之间来回移动。
Mathf.PI圆周率
static var PI : float
PI的值,也就是圆周率(π)的值3.14159265358979323846…(只读)
Mathf.Pow次方
static function Pow (f : float, p : float): float
计算并返回 f 的 p 次方。
Mathf.Repeat重复
static function Repeat (t : float, length :float) : float
循环数值t,0到length之间。t值永远不会大于length的值,也永远不会小于0。
这是类似于模运算符,但可以使用浮点数。
void Update() {
transform.position=newVector3(Mathf.Repeat(Time.time,3),transform.position.y,transform.position.z);
}
Mathf.Round四舍五入
static function Round (f : float) : float
返回浮点数 f 进行四舍五入最接近的整数。
如果数字末尾是.5,因此它是在两个整数中间,不管是偶数或是奇数,将返回偶数。
Mathf.RoundToInt四舍五入到整数
static function RoundToInt (f : float) :int
返回 f 指定的值四舍五入到最近的整数。
如果数字末尾是.5,因此它是在两个整数中间,不管是偶数或是奇数,将返回偶数