0
我从传感器4参数中获得每帧O(原点),W(UP),V(FORWARD)和U(RIGHT),它们是Vector3元素,这个值可以知道我的对象的位置在空间中,但我无法找到旋转来表示对象所做的所有动作。如何根据游戏对象的位置获取角度?
这是我得到这么远(此运行与入门载体新值每帧):
Vector3 vetO = new Vector3(entry[0], entry[4], entry[8]); //o
Vector3 vetU = new Vector3(entry[1], entry[5], entry[9]); //u
Vector3 vetV = new Vector3(entry[2], entry[6], entry[10]); //v
Vector3 vetW = new Vector3(entry[3], entry[7], entry[11]); //w
//Here i'm doing this to analize the rotation of a plan
vetW.x = 0;
vetU.z = 0;
vetV.y = 0;
float angleX = Vector3.Angle(vetW, Vector3.up);
float angleY = Vector3.Angle(vetV, Vector3.forward);
float angleZ = Vector3.Angle(vetU, Vector3.right);
//This is because unity bug, when angle is up to 180º
angleX = vetW.z < 0 ? -angleX : angleX;
angleY = vetV.x < 0 ? -angleY : angleY;
angleZ = vetU.y < 0 ? -angleZ : angleZ;
Vector3 angles = new Vector3(angleX, angleY, angleZ);
transform.eulerAngles = angles;
transform.localPosition = vetO;
实际上,我有一系列的空间位置,我想提取一个位置和另一个位置之间的角度。 – Ztrusco
所以你想获得2个物体之间的角度? (对不起,但我真的不明白你想要什么) –
请检查我的更新。 – Ztrusco