Sanftes LookAt in Unity
So setzt du eine sanfte LookAt-Funktion in Unity um

Schade, dass die Funktion transform.LookAt() keine Möglichkeit bietet, die Rotation zu animieren.
Also müssen wir diese Funktion selbst bauen.
Dafür brauchen wir eine Variable für die Geschwindigkeit, ich setze sie auf 12, weil ich das für einen passenden Wert halte. Außerdem brauchen wir ein Blickziel.
float rotationSpeed = 12f;
Transform lookTarget;Als Nächstes brauchen wir eine Rotate-Funktion. Darin ermitteln wir den Richtungsvektor und prüfen dann, ob es überhaupt eine Richtung gibt. Falls nicht, tun wir nichts. Danach erzeugen wir die Blickrotation in diese Richtung. Zum Schluss interpolieren wir die Rotation des Transforms.
void Rotate() {
Vector3 direction = lookTarget.position - transform.position;
if(direction == Vector3.zero)
return;
Quaternion rotation = Quaternion.LookRotation(direction);
transform.rotation = Quaternion.Slerp(
transform.rotation,
rotation,
rotationSpeed * Time.deltaTime
);
}Jetzt können wir die Rotate-Funktion in der Update-Funktion aufrufen.
void Update(){
Rotate();
}