属性和方法 | 作用 |
---|---|
normalized | 使用Vector3.normalized的一个常见场景是在物理模拟中,比如计算速度向量或在射线投射(Raycasting)中确定射线的方向。 |
Lerp | Vector3.Lerp在Unity中非常常用,尤其是在动画和游戏逻辑中,用于平滑地过渡从一个状态到另一个状态,例如角色移动、颜色渐变、摄像机平滑跟踪等。 |
Dot | Vector3.Dot在Unity中非常有用,尤其是在需要进行向量运算的场景中,如物理计算、动画和游戏逻辑等。 |
Cross | Vector3.Cross在Unity中非常有用,尤其是在需要进行空间向量运算的场景中,如3D图形渲染、物理引擎中的旋转和力矩计算等。 |
normalized 归一化##
Kimi:
Unity中的Vector3是一个表示三维空间中点或向量的类,它具有三个分量:x、y和z。Vector3.normalized是一个属性,当对一个Vector3实例调用这个属性时,会返回一个新的Vector3对象,它是原始向量的归一化版本。
归一化向量是指一个向量的长度(或大小)被缩放到1的向量,同时保持原有的方向。在数学上,一个向量v的归一化版本可以通过下面的公式计算得到:
其中,
是向量v的长度,计算公式为:
在Unity中,Vector3.normalized属性会自动进行这些计算,并返回一个新的Vector3对象,其长度为1,方向与原始向量相同。如果原始向量的长度为0,则normalized属性会抛出一个异常,因为无法对零向量进行归一化。
使用Vector3.normalized的一个常见场景是在物理模拟中,比如计算速度向量或在射线投射(Raycasting)中确定射线的方向。
下面是一个Unity中使用Vector3.normalized的示例代码:
using UnityEngine;
public class ExampleScript : MonoBehaviour
{
void Start()
{
Vector3 originalVector = new Vector3(3, 4, 0);
Vector3 normalizedVector = originalVector.normalized;
Debug.Log("Original Vector: " + originalVector);
Debug.Log("Normalized Vector: " + normalizedVector);
}
}
在这个示例中,我们创建了一个原始向量originalVector,然后通过调用normalized属性获取了它的归一化版本normalizedVector,并在控制台中打印了这两个向量。
Lerp
在Unity中,Vector3.Lerp(线性插值)是一个用于在两个向量之间进行插值的静态方法。它根据一个给定的参数t,在两个三维向量a和b之间计算出一个中间向量。t的值通常在0到1之间,其中0表示向量a,1表示向量b,而中间值则表示这两个向量之间的某个点。
函数的原型如下:
public static Vector3 Lerp(Vector3 a, Vector3 b, float t)
a:起始向量。
b:结束向量。
t:插值参数,用于确定插值点的位置。
线性插值的计算公式是:
这里的result是插值后的向量。
使用Vector3.Lerp的一个示例代码如下:
using UnityEngine;
public class ExampleScript : MonoBehaviour
{
void Start()
{
Vector3 startVector = new Vector3(1, 0, 0); // 红色向量
Vector3 endVector = new Vector3(0, 1, 0); // 绿色向量
float interpolationValue = 0.5f; // 插值参数,0到1之间
Vector3 interpolatedVector = Vector3.Lerp(startVector, endVector, interpolationValue);
Debug.Log("Interpolated Vector: " + interpolatedVector);
}
}
在这个示例中,我们定义了两个向量startVector和endVector,分别代表红色和绿色。我们设置插值参数interpolationValue为0.5,这意味着我们想要在两个向量之间找到一个中间点。使用Vector3.Lerp函数,我们计算出了插值后的向量interpolatedVector,并在控制台中打印出来。
Vector3.Lerp在Unity中非常常用,尤其是在动画和游戏逻辑中,用于平滑地过渡从一个状态到另一个状态,例如角色移动、颜色渐变、摄像机平滑跟踪等。
Dot 点乘
叉乘
叉积有几个重要的用途:
- 计算两个向量的垂直向量:叉积结果向量与原两向量都垂直。
- 计算面积:叉积向量的模长等于由原两向量构成的平行四边形的面积。
- 在物理中计算力矩和角动量:叉积常用于计算力对物体的转动效果。