Для реализации вращения камеры вокруг игрока от третьего лица в 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 в зависимости от ваших потребностей для достижения желаемого эффекта вращения камеры.