Jump to content
Unity Insider Forum

Rigidbody in Camerarichtung drehen[Solved]


NachoMan

Recommended Posts

Hallo, ich benutzte Unity mit BulletPhysics für ein Weltraumspiel um mehrere Welten gleichzeitig simulieren zu können.

Nun möchte ich mein Raumschiff in Richtung der Camera so drehen, dass die Nase des Schiffes in Blickrichtung zeigt. Dafür stehen AddTorque und AddRelativeTorque bereits zur Verfügung.

Mein Problem ist, dass ich keine Ahnung habe wie ich die Richtung, in die gedreht werden muss, berechne und wie ich dafür sorge, dass die Rotation langsamer wird je näher ich der Zielrotation bin.

Momentan sieht es so aus:

public void RotateTowards(Vector3 targetRotation)
{
	Quaternion relativeRotation = Quaternion.FromToRotation(transform.forward, targetRotation);
	_cacheRigidbody.AddTorque(relativeRotation.eulerAngles * rollRate);
}

Das Raumschiff dreht sich zwar, aber nicht annähern in die Richtung in die es sich drehen soll.(targetRotation bekomme ich über cameraTransform.forward)


Danke schonmal :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ja dann wird's schwerer. Dann musst du halt immer die Rotation des Körpers abfragen und wenn noch gedreht werden muss, weiterhin Kräfte ausüben oder gleich die Velocity manipulieren. Keine Ahnung, welche Befehle dafür in Bullet vorhanden sind.
Man kann außerdem trotzdem einen RB über seine Transformkomponente drehen und auch bewegen. Da diese Bewegung aber nicht mit der Physikberechnung synchron ist, kann es zu Problemen mit der Kollisionserkennung kommen. Aber bei langsamen Geschwindigkeiten wirst du keinen Unterschied erkennen. Das funktioniert jedenfalls mit PhysiX. Ob das bei Bullet genauso funktioniert kann ich nicht sagen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 weeks later...

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...