using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.EventSystems; public class CameraController : MonoBehaviour { [SerializeField] private Transform target; [SerializeField] private float smoothSpeed = 8f; [SerializeField] private Vector3 offset; [SerializeField] private float scrollSensitivity = 2f; [SerializeField] private float minDistance = 2f; [SerializeField] private float maxDistance = 10f; [SerializeField] private float distance; void Update() { if (target == null) return; float scrollInput = 0; if (!InteractionManager.Instance.IsActive && !EventSystem.current.IsPointerOverGameObject()) { scrollInput = Input.GetAxis("Mouse ScrollWheel"); } distance -= scrollInput * scrollSensitivity; distance = Mathf.Clamp(distance, minDistance, maxDistance); Vector3 desiredPosition = target.position - transform.forward * distance + offset; Vector3 smoothedPosition = Vector3.Lerp(transform.position, desiredPosition, smoothSpeed * Time.deltaTime); transform.position = smoothedPosition; } public void SetTarget(Transform target) { this.target = target; } }