
老规矩,先介绍一下 Unity 的科普小知识:
在unity中经常会遇到求向量夹角的地方
比如:在已知两个向量后,求这两个向量之间的夹角度数
直接上两种最简单的求夹角的方法
代码1:
//向量1
Vector3 d1 = transform.forward;
//向量2
Vector3 d2 = new Vector3(0, 5, 0);
//求夹角
float angle = Vector3.Angle(d1, d2);
//打印结果
Debug.Log("向量夹角:" + angle);代码2:
//向量1
Vector3 d1 = transform.forward;
//向量2
Vector3 d2 = new Vector3(0, 5, 0);
//d2.normalized向量归一化
float dot = Vector3.Dot(d1, d2.normalized);
//求夹角
float angle1 = Mathf.Acos(dot) * Mathf.Rad2Deg;
//打印结果
Debug.Log("向量夹角:" + angle);在顺便说一下 求两个向量的法线向量 的代码
Vector3 d1 = transform.forward;
Vector3 d2 = new Vector3(0, 5, 0);
Vector3 cross = Vector3.Cross(d1, d2.normalized);
Debug.Log("法线向量:"+cross);打印结果如下:

