本文最后更新于90 天前,其中的信息可能已经过时,如有错误请留言
Vector3
project
Declearation
public static Vector3Project(Vector3vector, Vector3onNormal)

ProjectOnPlane
public static Vector3 ProjectOnPlane (Vector3 vector, Vector3 planeNormal);


switch (planeNormal)
{
case PlaneNormalDic.X_Normal:
planeNormalDicV3 = transform.right;
break;
case PlaneNormalDic.Y_Normal:
planeNormalDicV3 = transform.up;
break;
case PlaneNormalDic.Z_Normal:
planeNormalDicV3 = transform.forward;
break;
default:
break;
}
// looker.transform.LookAt(sign);
looker.transform.LookAt(sign);
// 指向目标的向量
var dir = target.position - transform.position;
// 投影向量
var pj = Vector3.ProjectOnPlane(dir, planeNormalDicV3);
// 相对本对象位置进行变化
sign.position = transform.position + pj;
Y方向向量作为第二个参数,即待投影平面的法向量:

X方向向量作为第二个参数

Animator
deltaposition
public Vector3 deltaPosition;
返回动画系统在上一帧中根据动画计算出的位移增量。
- 反映 Root Motion(根运动)的位移
- 在动画中(例如角色走路、跑步),骨骼根节点会产生位移。
deltaPosition保存的就是 Animator 在上一帧动画里计算出的 这一帧角色的位移变化量。
- 配合 Root Motion 使用
- 如果启用了
Animator.applyRootMotion = true,Unity 会自动把deltaPosition应用到角色的Transform上。 - 如果没有启用,你就可以手动读取
deltaPosition,并用脚本自己控制角色移动逻辑。
- 如果启用了
Quaternion
LookRotation
public static Quaternion LookRotation(Vector3 forward, Vector3 upwards = Vector3.up);
forward (Vector3)
- 物体要“朝向”的前方方向向量(通常是目标位置 – 自己位置)。
- 注意:不能为零向量。
upwards (Vector3, 可选, 默认是 Vector3.up)
- 指定物体的“上方向”。
- 用来避免物体发生翻转(比如计算摄像机朝向时保持正立)
Slerp
面线性插值(Spherical Linear Interpolation)。
插值轨迹在四元数单位球面上,保证了旋转的匀速过渡,不会像线性插值(Quaternion.Lerp)那样在接近目标时速度变快或变慢。
public static Quaternion Slerp(Quaternion a, Quaternion b, float t);
输入
a(Quaternion)- 插值的起始旋转。
b(Quaternion)- 插值的目标旋转。
t(float, 范围 0 ~ 1)- 插值系数:
0→ 返回a1→ 返回b0.5→ 返回在旋转空间里a与b之间的中间旋转
- 插值系数:
返回值
Quaternion- 一个在
a和b之间平滑插值的旋转结果。 - 采用球面插值(Spherical Linear Interpolation, SLERP)
- 一个在
Math
Mathf.Deg2Rad

Lerp
在两个数值之间进行 线性插值(Linear Interpolation)。注意Mathf的lerp是线性变化的不会像Quaternion的lerp忽快忽慢,这和四元数的特征有关。
public static float Lerp(float a, float b, float t);

Physics
Raycast
它从一个点沿某个方向发射一条射线,检测是否与任何 Collider 相交。
返回值(所有重载一致)
bool:是否命中。- 如果使用带
out RaycastHit的重载,命中时会填充RaycastHit hit。
RaycastHit 常用字段:
collider/rigidbody/transformpoint(命中点世界坐标)normal(命中表面法线)distance(起点到命中点的距离)triangleIndex(MeshCollider 且非 convex 时)
参数说明
origin:起点(世界坐标)。direction:方向(不必单位化,但建议normalized;长度会影响“隐式距离”)。ray:Ray结构,等价于(origin, direction)。maxDistance:最远检测距离(默认Mathf.Infinity)。layerMask:图层掩码(默认DefaultRaycastLayers,即遵循物理设置里默认能碰撞的层)。queryTriggerInteraction:是否命中 Trigger:UseGlobal(默认,跟随 Project Settings > Physics 中的 “Queries Hit Triggers”)IgnoreCollide







