2016-05-19 18 views
0

Ich bekomme von einem Sensor 4 Parameter für jeden Rahmen, O (Ursprung), W (AUF), V (VORWÄRTS) und U (RECHTS), sie sind Vector3 Elemente, mit diesen Werten kann ich die Position meines Objekts kennen ist im Raum, aber ich kann die Rotation nicht finden, um alle Bewegungen darzustellen, die das Objekt tut.Wie kann ich Winkel basierend auf einer GameObject-Position erhalten?

das ist, was ich bisher bekommen (diese laufen jeden Rahmen mit neuen Werten für den Eintritt Vektor):

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; 

Antwort

0

Wenn ich Sie richtig verstehe, können Sie die Drehung eines bestimmten Gameobject erhalten wollen, nicht wahr?

Um dies zu tun, können Sie YourGameObject.transform.rotation.eulerAngles verwenden, um Ihnen eine Drehung in Form von Vector3 zu geben. Wenn Sie nur einen Winkel erhalten möchten, können Sie YourGameObject.transform.rotation.eulerAngles.x, YourGameObject.transform.rotation.eulerAngles.y oder YourGameObject.transform.rotation.eulerAngles.z

+0

tatsächlich ich habe eine Reihe von Raumposition und ich möchte die Winkel zwischen einer Position und anderen extrahieren. – Ztrusco

+1

Sie wollen also den Winkel zwischen 2 Objekten bekommen? (Entschuldigung, aber ich verstehe nicht wirklich, was Sie wollen) –

+0

Bitte überprüfen Sie mein Update. – Ztrusco

Verwandte Themen