54 lines
2.2 KiB
C#
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;
|
|
}
|
|
}
|