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);
打印结果如下: