私はセンサーから、O(起点)、W(UP)、V(前進)、U(右)の4つのパラメータを取得しています。これらの値はVector3の要素です。スペースにはありますが、オブジェクトが行うすべてのムービーメットを表す回転を見つけることはできません。GameObjectの姿勢に基づいてどのように角度を取得できますか?
これは私が(これはエントリーベクターのための新しい値を持つすべてのフレームを実行します)これまでに取得されるものです:
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