返回夹与最大值与最小值的值。
float Clamp(float value, float min, float max)
若正好在区间内则直接返回原值,如果比最大值大则返回最大值,若比最小值小则返回最小值。
float num01 = Mathf.Clamp(0.6f, 0.8f, 2.0f);
print(num01);
方法 | 说明 |
---|---|
back | 用于编写 Vector3(0, 0, -1) 的简便方法。 |
down | 用于编写 Vector3(0, -1, 0) 的简便方法。 |
forward | 用于编写 Vector3(0, 0, 1) 的简便方法。 |
left | 用于编写 Vector3(-1, 0, 0) 的简便方法。 |
negativeInfinity | 用于编写 Vector3(float.NegativeInfinity, float.NegativeInfinity, float.NegativeInfinity) 的简便方法。 |
one | 用于编写 Vector3(1, 1, 1) 的简便方法。 |
positiveInfinity | 用于编写 Vector3(float.PositiveInfinity, float.PositiveInfinity, float.PositiveInfinity) 的简便方法。 |
right | 用于编写 Vector3(1, 0, 0) 的简便方法。 |
up | 用于编写 Vector3(0, 1, 0) 的简便方法。 |
zero | 用于编写 Vector3(0, 0, 0) 的简便方法 |
方法 | 说明 |
---|---|
magnitude | 返回该向量的长度。(只读) |
normalized | 返回 magnitude 为 1 时的该向量。(只读) |
sqrMagnitude | 返回该向量的平方长度。(只读) |
this[int] | 分别使用 [0]、[1]、[2] 访问 x、y、z 分量。 |
x | 向量的 X 分量。 |
y | 向量的 Y 分量。 |
z | 向量的 Z 分量。 |
示例
Vector3 vector = new Vector3(20, 10, 10);
Vector3 v = vector.normalized;
方法 | 说明 |
---|---|
Angle | 获取from和to之间以度为单位的无符号角。 |
ClampMagnitude | 返回 vector 的副本,其大小被限制为 /maxLength/。 |
Cross | 两个向量的叉积。 |
Distance | 返回 a 与 b 之间的距离。 |
Dot | 两个向量的点积。 |
Lerp | 在两个点之间进行线性插值。 |
LerpUnclamped | 在两个向量之间进行线性插值。 |
Max | 返回由两个向量的最大分量组成的向量。 |
Min | 返回由两个向量的最小分量组成的向量。 |
MoveTowards | 计算 current 指定的点与 target 指定的点之间的位置,移动距离不超过 maxDistanceDelta 指定的距离。 |
Normalize | 使该向量的值为 1。 |
OrthoNormalize | 将向量标准化并使它们彼此正交。 |
Project | 将向量投影到另一个向量上。 |
ProjectOnPlane | 将向量投影到由法线定义的平面上(法线与该平面正交)。 |
Reflect | 从法线定义的平面反射一个向量。 |
RotateTowards | 将向量 current 朝 target 旋转。 |
Scale | 将两个向量的分量相乘。 |
SignedAngle | 向量之间的夹角,返回两个向量之间较小的角度(在旋转计算中常常用到) |
Slerp | 在两个向量之间进行球形插值。 |
SlerpUnclamped | 在两个向量之间进行球形插值。 |
SmoothDamp | 随时间推移将一个向量逐渐改变为所需目标。 |
方法 | 说明 |
---|---|
operator - | 将一个向量减去另一个向量。 |
operator != | 不相等返回true。 |
operator * | 将向量乘以一个数值。 |
operator / | 将向量除以一个数值。 |
operator + | 将两个向量相加。 |
operator == | 如果两个向量相等,则返回 true。 |
用于表示 2D 向量和点。
在某些地方,可以使用该结构表示 2D 位置和向量 (例如 Mesh 中的纹理坐标或 Material 中的纹理偏移)。在大多数其他情况下, 需要使用 Vector3。
方法 | 说明 |
---|---|
down | 用于编写 Vector2(0, -1) 的简便方法。 |
left | 用于编写 Vector2(-1, 0) 的简便方法。 |
negativeInfinity | 用于编写 Vector2(float.NegativeInfinity, float.NegativeInfinity) 的简便方法。 |
one | 用于编写 Vector2(1, 1) 的简便方法。 |
positiveInfinity | 用于编写 Vector2(float.PositiveInfinity, float.PositiveInfinity) 的简便方法。 |
right | 用于编写 Vector2(1, 0) 的简便方法。 |
up | 用于编写 Vector2(0, 1) 的简便方法。 |
zero | 用于编写 Vector2(0, 0) 的简便方法。 |
方法 | 说明 |
---|---|
magnitude | 返回该向量的长度。(只读) |
normalized | 返回 magnitude 为 1 时的该向量。(只读) |
sqrMagnitude | 返回该向量的平方长度。(只读) |
this[int] | 分别使用 [0] 或 [1] 访问 x 或 y 分量。 |
x | 向量的 X 分量。 |
y | 向量的 Y 分量。 |
方法 | 说明 |
---|---|
Vector2 | 使用给定的 x、y 分量构造新向量。 |
方法 | 说明 |
---|---|
Equals | 如果给定向量与该向量完全相等,则返回 true。 |
Normalize | 使该向量的 magnitude 为 1。 |
Set | 设置现有 Vector2 的 x 和 y 分量。 |
ToString | Returns a formatted string for this vector. |
方法 | 说明 |
---|---|
Angle | 获取from和to之间以度为单位的无符号角。 |
ClampMagnitude | 返回 vector 的副本,其大小被限制为 /maxLength/。 |
Distance | 返回 a 与 b 之间的距离。 |
Dot | 两个向量的点积。 |
Lerp | 在向量 a 与 b 之间按 t 进行线性插值。 |
LerpUnclamped | 在向量 a 与 b 之间按 t 进行线性插值。 |
Max | 返回由两个向量的最大分量组成的向量。 |
Min | 返回由两个向量的最小分量组成的向量。 |
MoveTowards | 将点 current 移向 /target/。 |
Perpendicular | 返回垂直于该 2D 向量的 2D 向量。对于正 Y 轴向上的 2D 坐标系来说,结果始终沿逆时针方向旋转 90 度。 |
Reflect | 从法线定义的向量反射一个向量。 |
Scale | 将两个向量的分量相乘。 |
SignedAngle | Gets the signed angle in degrees between from and to. |
SmoothDamp | 随时间推移将一个向量逐渐改变为所需目标。 |
方法 | 说明 |
---|---|
operator - | 将一个向量减去另一个向量。 |
operator * | 将向量乘以一个数值。 |
operator / | 将向量除以一个数值。 |
operator + | 将两个向量相加。 |
operator == | 如果两个向量大致相等,则返回 true。 |
Vector2 | 将 Vector3 转换为 Vector2。 |
Vector3 | 将 Vector2 转换为 Vector3。 |
四元数用于表示旋转。
创建一个围绕 axis
旋转 angle
度的旋转。
public static QuaternionAngleAxis (float angle, Vector3 axis);
围绕Z轴旋转30度角。
transform.rotation = Quaternion.AngleAxis(30, Vector3.forward);
a朝向b
Vector3 v = b.transform.position - a.transform.position;
float angle = Mathf.Atan2(v.y, v.x) * Mathf.Rad2Deg;
Quaternion trailRotation = Quaternion.AngleAxis(angle, Vector3.forward);
a.transform.rotation = trailRotation;