Как сделать вращение камеры вокруг игрока от третьего лица в unity3d?

Для реализации вращения камеры вокруг игрока от третьего лица в Unity3D, вы можете использовать скрипт, который будет управлять положением и вращением камеры. Вот пример такого скрипта:

using UnityEngine;

public class ThirdPersonCamera : MonoBehaviour
{
    public Transform target; // ссылка на игрока
    public float distance = 5.0f; // расстояние от камеры до игрока
    public float height = 2.0f; // высота камеры над игроком
    public float smoothSpeed = 10.0f; // скорость плавного следования камеры за игроком
    public float rotationSpeed = 100.0f; // скорость вращения камеры

    private float currentRotationAngle; // текущий угол поворота камеры

    void LateUpdate()
    {
        // Вычисляем позицию камеры с учетом позиции игрока
        Vector3 targetPosition = target.position + new Vector3(0, height, 0) - target.forward * distance;

        // Используем плавную интерполяцию для плавного следования камеры за игроком
        transform.position = Vector3.Lerp(transform.position, targetPosition, smoothSpeed * Time.deltaTime);

        // Получаем текущее значение мыши по горизонтали
        float rotationAngle = Input.GetAxis("Mouse X") * rotationSpeed * Time.deltaTime;

        // Поворачиваем камеру вокруг игрока
        currentRotationAngle += rotationAngle;
        Quaternion rotation = Quaternion.Euler(0, currentRotationAngle, 0);
        transform.LookAt(target.position);
        transform.RotateAround(target.position, Vector3.up, rotationAngle);

        // Поворачиваем камеру в направлении игрока
        transform.LookAt(target);
    }
}

Чтобы использовать этот скрипт, вам потребуется создать пустой объект, который будет являться камерой и добавить этому объекту скрипт ThirdPersonCamera. Затем в инспекторе присвойте этому скрипту ссылку на игрока (например, объект, представляющий персонажа игрока).

В этом примере используется функция LateUpdate(), чтобы убедиться, что камера обновляется после всех изменений положения игрока. В функции LateUpdate() скрипт сначала вычисляет позицию камеры, с учетом расстояния и высоты относительно игрока. Затем скрипт поворачивает камеру вокруг игрока на основе движения мыши, используя вращение вокруг оси Y. Наконец, камера смотрит в направлении игрока.

Вы можете настроить значения переменных distance, height, smoothSpeed и rotationSpeed в зависимости от ваших потребностей для достижения желаемого эффекта вращения камеры.