Documentation

Unity Engine


User Manual

Script Reference

Unity Engine


Slerp

Spherically linear interpolates between unit quaternions a and b by a ratio of t.
Read time 2 minutesLast updated 4 days ago

Definition

  • Type: Method
  • Namespace: UnityEngine
  • Assembly: UnityEngine.CoreModule

Slerp(Quaternion, Quaternion, float)

Spherically linear interpolates between unit quaternions
a
and
b
by a ratio of
t
.
public static Quaternion Slerp(Quaternion a, Quaternion b, float t)

Parameters

Start unit quaternion value, returned when t = 0.

End unit quaternion value, returned when t = 1.

Interpolation ratio. Value is clamped to the range [0, 1].

Returns

Type

Description

QuaternionA unit quaternion spherically interpolated between quaternions
a
and
b
.

Remarks

Use this to create a rotation which smoothly interpolates between the first unit quaternion
a
to the second unit quaternion
b
, based on the value of the parameter
t
. If the value of the parameter is close to 0, the output will be close to
a
, if it is close to 1, the output will be close to
b
.
// Interpolates rotation between the rotations "from" and "to"// (Choose from and to not to be the same as// the object you attach this script to)using UnityEngine;using System.Collections;public class ExampleClass : MonoBehaviour{ public Transform from; public Transform to; private float timeCount = 0.0f; void Update() { transform.rotation = Quaternion.Slerp(from.rotation, to.rotation, timeCount); timeCount = timeCount + Time.deltaTime; }}

Slerp(Quaternion, Quaternion, float)

Spherically linear interpolates between unit quaternions
a
and
b
by a ratio of
t
.
public static Quaternion Slerp(in Quaternion a, in Quaternion b, float t)

Parameters

Start unit quaternion value, returned when t = 0.

End unit quaternion value, returned when t = 1.

Interpolation ratio. Value is clamped to the range [0, 1].

Returns

Type

Description

QuaternionA unit quaternion spherically interpolated between quaternions
a
and
b
.

Remarks

Use this to create a rotation which smoothly interpolates between the first unit quaternion
a
to the second unit quaternion
b
, based on the value of the parameter
t
. If the value of the parameter is close to 0, the output will be close to
a
, if it is close to 1, the output will be close to
b
.
// Interpolates rotation between the rotations "from" and "to"// (Choose from and to not to be the same as// the object you attach this script to)using UnityEngine;using System.Collections;public class ExampleClass : MonoBehaviour{ public Transform from; public Transform to; private float timeCount = 0.0f; void Update() { transform.rotation = Quaternion.Slerp(from.rotation, to.rotation, timeCount); timeCount = timeCount + Time.deltaTime; }}