Kamera Movement in Unity?

1 Antwort

Berechne die Differenz in der Mausbewegung im zweidimnsionalen. Sonst hats du auch Probleme abhängig avon, wohin du gerade schaust.

Mit dem zweidimensionalen Vektor der Mausbewegung erhälst du eine Drehrichtung bzw. eine Drehachse, um die du dann die kamera mit konstanter Geschwindigkeit drehst (mittels Geschwindigkeitsparameter, das du vorher festlegst, und der deltaTime des Zeitschrittes).

Die Drehachse erhälst du, wenn ich mich nicht irre, indem du den zweidimensionalen Vektor um eine Dimension erweiterst (sodass er auf der dreidimensionalen Kameraebene liegt) und dann die Senkrechte berechnest, die auf diesem Vektor und der Blickrichtung liegt (dabei darauf achten, dass du die richtige der zwei senkrechten wählst, das sollte sich aber ergeben, wenn du das Kreuzprodukt immer gleich anwendest).

EDIT:

Wobei ich gerade verstehe, dass du das im wesentlichen auch schon machst. Ich sehe auch gerade erst, dass du die Sicht verschieben möchtest und nicht drehen.

Dein einziges Problem ist dann der y-Wert. Du möchtest ja offenbar doch, dass sich der ändert, sonst hättest du ja kein Problem mit der Verschiebung nach oben oder unten?

Wenn du den im kamera-Space konstant halten möchtest, dann musst du einfach den y-Wert der Maus-Position vor Verwendung auf die Mitte setzen.

Wenn du generell nur in die Richtung bewegen möchtest, in die die Bewegung mehr stattfindet, dann suchst du dir das Maximum der einzelnen Dimensionswerte und setzt den jeweils anderen Wert auf die Mitte.

Oder was genau möchtest du machen?