Vector3相关
| API / 用法 | 含义 / 功能说明 |
|---|---|
v.magnitude |
向量长度(模) |
v.sqrMagnitude |
向量长度平方(比 magnitude 更高效) |
v.normalized |
单位向量(方向不变,长度=1) |
Vector3.Distance(a, b) |
两点间距离 |
Vector3.SqrMagnitude(a - b) |
两点间距离平方(更高效) |
Vector3.Angle(a, b) |
两向量夹角(返回 0°~180°,始终非负) |
Vector3.SignedAngle(a, b, axis) |
两向量夹角(带符号,范围 -180°~180°,需指定旋转轴) |
Vector3.Dot(a, b) |
点乘:判断夹角关系、前后方位 |
Vector3.Cross(a, b) |
叉乘:返回垂直于 a 和 b 的向量,用于判断左右或求法线 |
Vector3.Reflect(inDirection, inNormal) |
反射向量(如子弹/光线碰撞反射) |
Vector3.Project(a, b) |
将向量 a 投影到向量 b 上 |
Vector3.ProjectOnPlane(a, planeNormal) |
将向量 a 投影到某平面上 |
Vector3.Lerp(a, b, t) |
两向量线性插值(t ∈ [0,1]) |
Vector3.LerpUnclamped(a, b, t) |
两向量线性插值(t 可超出 [0,1]) |
Vector3.MoveTowards(a, b, maxDistance) |
从 a 向 b 移动,最大步长为 maxDistance |
Vector3.SmoothDamp(current, target, ref velocity, smoothTime) |
平滑阻尼插值(常用于相机/角色平滑跟随) |
Vector3.ClampMagnitude(v, maxLength) |
限制向量长度不超过 maxLength |
Vector3.Scale(a, b) |
分量逐一相乘(逐轴缩放) |
Vector3.Min(a, b) |
返回分量逐一较小值 |
Vector3.Max(a, b) |
返回分量逐一较大值 |
Vector3.zero |
(0,0,0) 零向量 |
Vector3.one |
(1,1,1) 单位向量 |
Vector3.up / Vector3.down |
(0,1,0) / (0,-1,0) |
Vector3.right / Vector3.left |
(1,0,0) / (-1,0,0) |
Vector3.forward / Vector3.back |
(0,0,1) / (0,0,-1) |
叉乘:Vector normal = Vector3.Cross(monster.transform.forward,(player.transform.position-monster.transform.position))
获取怪物坐标和角色相对怪物向量的法线,判断角色相对怪物的左右方向(法线的y分量大于0:角色在怪物右侧 小于0在怪物左侧)
前后:点乘 左右:叉乘 上下:高度差

浙公网安备 33010602011771号