Ich habe eine Kamera, die ich um einen Punkt (0,0,0) in alle Richtungen drehen möchte, aber ich möchte so eine Klemme aufstellen dass es nicht zu weit über oder unter den Punkt gehen kann. Ich habe diese Frage schon vorher für die linke und rechte Richtung beantwortet, aber nie für die vertikale.Wie zu begrenzen (Klemme) Y-Achse Rotation für Transform.Umdrehung Unity
Ich habe versucht, den Code aus diesen beiden Fragen (die im Grunde sagen die gleiche Sache) zu arbeiten in der vertikalen Richtung, aber es Bugs out an einigen Punkten entlang der Rotation, und ich kann nicht herausfinden, warum.
First Question, Second Question
Und das ist, wie ich versuchte, es zu konvertieren:
//how much we want to rotate by this frame
float rotX = Input.GetAxis("Mouse X") * rotSpeed;
float rotY = Input.GetAxis("Mouse Y") * rotSpeed; //(before clamping)
//find current direction
Vector3 currentDirection = transform.position - Vector3.zero;
//find current angle between basis for clamp & where we are now
float angle = Vector3.Angle(Vector3.forward, currentDirection);
//finds out if it's up or down
if (Vector3.Cross(Vector3.forward, currentDirection).x < 0) angle = -angle;
//find out how much you can move without violating limits
float newAngle = Mathf.Clamp(angle + rotY, yMinLimit, yMaxLimit);
//grabs how much you are allowed to move the angle from the current angle
rotY = newAngle - angle;
//spinning the garden
transform.RotateAround(Vector3.zero, Vector3.up, rotX);
transform.RotateAround(Vector3.zero, transform.TransformDirection(Vector3.right), -rotY); //vertical rotation
Wenn jemand von der richtigen Art und Weise kennt diese Arbeit für die Y-Achse zu machen, oder eine andere Art und Weise zu klemmen die vertikale Rotation, ich wäre super aufgeregt, es zu hören! Ty!
Entschuldigung, es dauerte ein paar Tage bis ich antwortete! Endlich Zeit um es zu testen und es funktioniert perfekt! Bei meiner Suche nach einer Antwort habe ich einen anderen Post zu Unity Answers mit der gleichen Frage gefunden, stört es Sie, wenn ich einen Link zu diesem Post weitergebe? –
Es stört mich überhaupt nicht. In der Tat bin ich froh zu wissen, dass diese Antwort mehr Menschen helfen wird. :-) (Entschuldigung für die verspätete Antwort auf Ihren Kommentar) – Fenixrw