Загрузка данных


using UnityEngine;

public class CameraFollow : MonoBehaviour
{
    [Header("Настройки камеры")]
    [SerializeField] private Transform target; // Игрок
    [SerializeField] private Vector3 offset = new Vector3(0, 12, -6); // Смещение (высота и отдаление)
    [SerializeField] private float smoothSpeed = 5f; // Плавность движения

    // Угол, под которым камера смотрит вниз (как в твоей Main Camera rotation: 40, 0, 0)
    // Важно: 40 градусов считается от горизонтали вверх. В Unity это -40 или 40 в зависимости от оси.
    // Я ставлю -35, так как в изометрии обычно используют именно это значение. Подгони под свой вкус.
    private Vector3 fixedRotation = new Vector3(40, 0, 0); 

    void Start()
    {
        // Принудительно ставим нужный поворот при старте
        transform.eulerAngles = fixedRotation;
    }

    void LateUpdate()
    {
        if (target == null) return;

        // 1. Вычисляем желаемую позицию (позиция игрока + наш offset)
        Vector3 desiredPosition = target.position + offset;

        // 2. Плавно перемещаем камеру в желаемую позицию
        transform.position = Vector3.Lerp(transform.position, desiredPosition, smoothSpeed * Time.deltaTime);

        // 3. Жестко фиксируем поворот камеры. 
        // Мы НЕ используем LookRotation, чтобы камера всегда смотрела строго под 40 градусов вниз.
        transform.eulerAngles = fixedRotation;
    }
}