using UnityEngine; using Zenject; namespace DanroJump.Gameplay { public sealed class VerticalCameraFollow : MonoBehaviour { [SerializeField] private Transform target; [SerializeField] private float verticalOffset = 1.25f; [SerializeField] private float followSmoothing = 7f; private float highestCameraY; [Inject] public void Construct(JumpPlayerController playerController) { target = playerController.transform; } private void Awake() { highestCameraY = transform.position.y; } private void LateUpdate() { if (target == null) { return; } var desiredY = target.position.y + verticalOffset; if (desiredY <= highestCameraY) { return; } highestCameraY = Mathf.Lerp(highestCameraY, desiredY, Time.deltaTime * followSmoothing); transform.position = new Vector3(transform.position.x, highestCameraY, transform.position.z); } } }