Ich möchte ein Objekt mit der linken Pfeiltaste drehen und ich möchte die Drehung auf 30 Grad begrenzen. Mein Code ist:Begrenzte Drehung mit Unity3D
if (Input.GetKey(KeyCode.LeftArrow) && transform.localEulerAngles.z <= 30)
transform.Rotate(0,0,1);
Warum Drehung stoppt bis 31 Grad? Offensichtlich ist mein Problem komplexer als das, ich habe unterschiedliche Grenzen und brauche Präzision. Der Grund für dieses Beispiel ist einfach zu sagen, dass Rotationen nicht präzise sind, wenn sie auf diese Weise verwaltet werden.
Ich denke der Grund ist, dass Unity3D intern Quaternionen verwendet und auf Grad wirkt nur eine Annäherung ist. Ich habe recht? In diesem letzten Fall, wie kann ich damit umgehen?
Zum Beispiel, Wie kann ich Quaternionen an 30 Grad einer Drehung auf einer Achse binden?
Übrigens, wenn das Problem nicht das ist, haben Sie andere Lösungen?
Ich habe schon so versucht: das gleiche Ergebnis – Yuri