Unity3d 求法线与水平线的夹角
在unity中,我想知道是否有一种方法可以计算相机/耳机与水平面的夹角 我是unity的新手(我13岁),所以请对我放松点 我试着这样计算角度:Unity3d 求法线与水平线的夹角,unity3d,Unity3d,在unity中,我想知道是否有一种方法可以计算相机/耳机与水平面的夹角 我是unity的新手(我13岁),所以请对我放松点 我试着这样计算角度: float zAngle = (float)Mathf.Asin(headset.transform.forward.z); 我的逻辑是:如果耳机的前向向量是法向量,它的长度是1(因为它是单位向量) 角度=圆弧(z) 但当我将摄像头(连接到上面的headset变量)沿z轴旋转30度时,headset.transform.forward.z仍然是1(并
float zAngle = (float)Mathf.Asin(headset.transform.forward.z);
我的逻辑是:如果耳机的前向向量是法向量,它的长度是1(因为它是单位向量)
角度=圆弧(z)
但当我将摄像头(连接到上面的headset变量)沿z轴旋转30度时,headset.transform.forward.z仍然是1(并且应该小于1)
对吧??我做错了什么?当你说“沿z轴旋转”时,你的意思是说你在绕z轴旋转吗?如果计算相机的前向向量与z轴的夹角,则绕z轴旋转不会改变该角度,因为前向向量保持不变。通过绕z轴旋转,你的头向左或向右倾斜,同时仍然向前看。所以你的前向向量不变,我明白了!我需要的是y分量,不是z!非常感谢。
sin(angle) = zComponent of forward vector
----------------------------------------------
hypoteneuse =1 (our unit vector normal length)