Zur Zeit habe ich die folgenden zwei Probleme:Zurücksetzen Position relativ zur Rotation
Die erste Ausgabe ist, dass, wenn ich meine Kameraposition zurückgesetzt Ich muss auch meine Kamera Rotation zurückgesetzt. Dies ist aufgrund der Tatsache, dass meine Kamera Offset ist auf eine Position etwas außerhalb meines Players auf der z und y Achse und offensichtlich diese Werte sollten sich ändern, abhängig von meiner Kamera Rotation, obwohl ich nicht sicher bin, was diese herauszufinden Werte sollten sein.
Mein zweites Problem ist, dass meine Rotation eine Raycast verwendet die Mitte den Bildschirm und bestimmen seine Rotation Ursprung zu finden, obwohl es leicht aus der Mitte des Bildschirms zu sein scheint, als wenn sie die Bewegungen Rotation Ursprung dreht auch, wenn es tatsächlich in der Mitte des Bildschirms ist sollte es nicht ganz still sein? Gibt es auch eine bessere und weniger teure Möglichkeit, meine gewünschte Rotation zu erreichen?
Relevant Stück Code:
void RotateCamera()
{
//Find midle of screen
Ray ray = Camera.main.ScreenPointToRay(new Vector3(Screen.width/2, Screen.height/2, 0));
RaycastHit hitInfo;
//Checks if ray hit something
if (Physics.Raycast(ray, out hitInfo))
{
//Rotate left and right
if (Input.GetKey(KeyCode.RightArrow))
{
transform.RotateAround(hitInfo.point, -Vector3.up, rotationSpeed * Time.deltaTime);
}
if (Input.GetKey(KeyCode.LeftArrow))
{
transform.RotateAround(hitInfo.point, Vector3.up, rotationSpeed * Time.deltaTime);
}
}
//Draws Raycast
Debug.DrawRay(ray.origin, ray.direction * 100, Color.yellow);
}
void ResetCameraPosition()
{
//Reset and lock camera position
transform.rotation = Quaternion.identity;
transform.position = player.transform.position + cameraOffset;
}
Können Sie ein bisschen mehr erklären, was Sie eigentlich die Kamera tun wollen? Ich denke ich bekomme, dass du dich um einen Punkt drehen willst und bei Bedarf auf die aktuelle Ausrichtung des Spielers zurücksetzen willst, aber bitte bestätige es. – Absinthe
Ja, und ein Screenshot oder eine Zeichnung (sogar Programmierer Kunst) würde viel helfen –
@Absinthe Ja, tut mir leid, dass es im Grunde ist ich will die Kamera um die Mitte des Bildschirms drehen, so im Grunde dreht es sich um was auch immer es ist Wenn ich mich perfekt ansehe, ist der Code, den ich gerade mache, okay, aber sein Fokuspunkt bewegt sich leicht, wenn er rotiert, und es scheint eine teure Methode zu sein, ihn zu berechnen. Und für den Reset-Rotationsteil möchte ich meine Kamera so einstellen, dass sie bereits gedreht ist, obwohl sie so positioniert ist, dass sie meinen Charakter sehen würde. Hoffe das klärt es auf. Vielen Dank! –