public class Rotation : MonoBehaviour
{
private Quaternion _startRotation;
private Quaternion _targetRotation;
private float _rotationTime;
public Transform TargetObject; // you must to set the target object in the editor or code
public float TimeToRotation = 3f;
void Start()
{
_startRotation = transform.rotation;
transform.LookAt(TargetObject);
_targetRotation = transform.rotation;
transform.rotation = _startRotation;
_rotationTime = 0f;// reset it to zero if you want to start the new rotation
}
void Update()
{
_rotationTime += Time.deltaTime;
transform.rotation = Quaternion.Slerp(
_startRotation, _targetRotation, _rotationTime / TimeToRotation);
}
}