Как сделать плавный поворот объекта Unity?

Для достижения плавного поворота объекта в Unity можно использовать функцию Lerp (Linear Interpolation) или Quaternion.Lerp.

Сначала необходимо определить начальную и конечную позиции вращения объекта. Обычно это делается с помощью вектора (x, y, z), где каждая компонента соответствует вращению вокруг соответствующей оси.

Затем можно использовать функцию Lerp или Quaternion.Lerp для плавного изменения позиции объекта от начального состояния до конечного состояния. Ниже приведены примеры кода для обоих методов:

Использование функции Lerp:

public Transform objectToRotate;     // ссылка на объект, который нужно повернуть
public Vector3 targetRotation;       // конечная позиция вращения
public float rotationSpeed = 2f;     // скорость поворота объекта

void Update()
{
    objectToRotate.rotation = Quaternion.Lerp(objectToRotate.rotation, Quaternion.Euler(targetRotation), rotationSpeed * Time.deltaTime);
}

Использование функции Quaternion.Lerp:

public Transform objectToRotate;     // ссылка на объект, который нужно повернуть
public Vector3 targetRotation;       // конечная позиция вращения
public float rotationSpeed = 2f;     // скорость поворота объекта

void Update()
{
    Quaternion targetQuaternion = Quaternion.Euler(targetRotation);
    objectToRotate.rotation = Quaternion.Lerp(objectToRotate.rotation, targetQuaternion, rotationSpeed * Time.deltaTime);
}

В обоих примерах переменная targetRotation определяет конечное положение вращения вокруг осей X, Y и Z. Переменная rotationSpeed отвечает за скорость поворота объекта. С помощью Time.deltaTime сглаживается плавность анимации.

Не забудьте добавить ссылку на объект, который вы хотите повернуть, и изменить его Transform.rotation на свойство объекта, который вы хотите повернуть.