using System.Collections; using System.Collections.Generic; using UnityEngine; public class ChangeCameraPosition : MonoBehaviour { public Vector3 TargetCameraPosition; Vector3 NewCameraPosition; public void LerpCameraToNewPosition(float lerpDuration) { StartCoroutine(LerpCameraToNewPos(lerpDuration)); } public IEnumerator LerpCameraToNewPos(float lerpDuration) { float CameraRunElapsedTime = 0f; while (CameraRunElapsedTime < lerpDuration) { CameraRunElapsedTime += Time.deltaTime; float t = Mathf.Clamp01(CameraRunElapsedTime / lerpDuration); // Ensure t is between 0 and 1 NewCameraPosition = Vector3.Lerp(PlayerManager.GetInstance()._cameraMovement.transform.localPosition, TargetCameraPosition, t); PlayerManager.GetInstance()._cameraMovement.transform.localPosition = NewCameraPosition; print("Is lerping camera to new position"); yield return null; } // Ensure that the final value is exactly the target value PlayerManager.GetInstance()._cameraMovement.transform.localPosition = NewCameraPosition; } public void LerpCameraToDefaultPosition(float lerpDuration) { StartCoroutine(LerpCameraToDefaultPos(lerpDuration)); } public IEnumerator LerpCameraToDefaultPos(float lerpDuration) { float CameraRunElapsedTime = 0f; while (CameraRunElapsedTime < lerpDuration) { CameraRunElapsedTime += Time.deltaTime; float t = Mathf.Clamp01(CameraRunElapsedTime / lerpDuration); // Ensure t is between 0 and 1 NewCameraPosition = Vector3.Lerp(PlayerManager.GetInstance()._cameraMovement.transform.localPosition, PlayerManager.GetInstance()._PlayerMovement._cameraDefaultPOS, t); PlayerManager.GetInstance()._cameraMovement.transform.localPosition = NewCameraPosition; print("Is lerping camera to original pos"); yield return null; } // Ensure that the final value is exactly the target value PlayerManager.GetInstance()._cameraMovement.transform.localPosition = NewCameraPosition; } }