Files
HauntedBloodlines/Assets/Scripts/Scripted Events/ChangeCameraPosition.cs
2025-05-29 22:31:40 +03:00

54 lines
2.2 KiB
C#

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;
}
}