public static Quaternion LookRotation(Vector3 forward, Vector3 up = Vector3.up);
Creates a rotation with forward
and upwards
.
upwards
is used to guide the orientation, and right
becomes the cross-product between it and forward
.
Combined with Vector3.Cross
this function is a staple for creating orientations.
Drag the sphere near forward
or upwards
to modify their direction.
Quaternion.LookRotation(new Vector3(0, 1, 0), new Vector3(1, 0, 0));
When setting transform.forward
, LookRotation
is used1:
// The blue axis of the transform in world space.
public Vector3 forward { ... set { rotation = Quaternion.LookRotation(value); } }
A custom LookAt
could choose to use it:
public static Quaternion GetLookAtOrientation(Vector3 origin, Vector3 target)
=> GetLookAtOrientation(origin, target, Vector3.up);
public static Quaternion GetLookAtOrientation(Vector3 origin, Vector3 target, Vector3 up)
{
Vector3 lookDirection = target - origin;
return Quaternion.LookRotation(lookDirection, up);
}
Return to Quaternions.
Next, Quaternion.FromToRotation.
transform.up
and transform.right
use FromToRotation
.↩