Ich möchte eine Vector3 Rotation in Unity 3D machen. Die Rotationsachsen führen jedoch keine korrekte Rotation durch. Dies liegt daran, dass ich zwei Achsen gleichzeitig um x und y rotiere. Ich muss zwei Umdrehungen trennen. Was kann ich tun? Danke, dass du mir geholfen hast. Vector3 start = new Vector3(0,0,0)
Vector3 target = new Vector3(0,0,0)
transform.localEulerAngles = Vector3.Lerp(start,target,time)
Vector3 Lerp Rotation
Antwort
Mit Vector3 Rotation durch Vector3.Lerp ist anfällig Sperre Probleme Gimbal das ist, was Sie erleben könnte.
Der beste Weg, um durch Rotation zu lernen, ist die transform.Rotate();
Funktion zu verwenden.
Alternativ können Sie auch einen Quaternion.Lerp();
verwenden und den Start und das Ende von Quaternions mit Quaternion.Euler();
erstellen. Dies wird Ihnen die zuverlässigsten Ergebnisse liefern, da Quaterion
Rotation komplexer ist als Vector3
und beseitigt alle Probleme, die Sie in Vector3
Umdrehungen haben würden.
Edit: Bitte denken Sie daran, ganze Snippets Ihres Codes zu posten. Lerp steht für lineare Interpolation und erfordert ein t, das von 0 bis 1 geht, wobei 0 der Anfangspunkt und 1 der Endpunkt ist. Viele Leute benutzen diese Funktion falsch und haben ein Problem. Da ich deinen Code nicht sehen kann, nahm ich an, dass du das richtig gemacht hast, aber ich weiß nicht, ob ich den tatsächlichen Code sehen würde :)
Bitte poste das relevante Snippet deines Codes und was du schon versucht hast. –
Vektor3 Start = Neu Vektor3 (0,0,0); Vektor3 Ziel = neuer Vektor3 (x, y, z); transform.localEulerAngles = Vector3.Lerp (Start, Ziel, Zeit); – Acceleboy
Bitte bearbeiten Sie Ihre Frage, um den zusätzlichen Code hinzuzufügen. – buczek