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在怪物左侧)

前后:点乘 左右:叉乘 上下:高度差

posted @ 2025-11-30 19:01  高山仰止666  阅读(13)  评论(0)    收藏  举报