我正在尝试确定相机前向矢量与物体矢量相交的角度。抱歉,根据我的知识,这不是很容易解释,请参考附图:相机可能没有直接对准物体(OBJ),我想知道相机前向矢量(红色V1)与物体矢量(红色V2)相交的角度(图中的“?”),例如A点、B点、C点等,具体取决于相机的x旋转角度。
//v1
Vector3 hypoth = Camera.main.transform.forward.normalized;
//v2
Vector3 adjacent = (new Vector3(obj.transform.position.x, obj.transform.position.y, Camera.main.transform.position.z)
-obj.transform.position).normalized;
float dotProd = Vector3.Dot(adjacent, hypoth);
float cosOfAngle = dotProd / (Vector3.Magnitude(adjacent) * Vector3.Magnitude(hypoth));
double radAngle = Math.Acos(cosOfAngle);
float angle = (float)((180 / Math.PI) * radAngle);
(obj.transform.position - new Vector3(obj.transform.position.x, obj.transform.position.y, Camera.main.transform.position.z)).normalized;
,否则adjacent
点不会 远离obj
。 - Ruzihm180f - 90f - Vector3.Angle(camera.forward, (obj.position - camera.position).normalized)
来计算呢? - derHugo