using UnityEngine;
using Unity.Cinemachine;
public class ParallaxBackground : MonoBehaviour
{
[SerializeField] private CinemachineCamera cineCamera;
[SerializeField] private Transform followTarget;
[SerializeField] private float parallaxFactor = 0.5f;
[SerializeField] private float minX = -27.57f;
[SerializeField] private float maxX = 46.02f;
private Vector3 previousCameraPosition;
void Start()
{
if (cineCamera == null || followTarget == null)
{
Debug.LogError("Cinemachine Camera or Follow Target not assigned.");
enabled = false;
return;
}
previousCameraPosition = cineCamera.transform.position;
}
void LateUpdate()
{
Vector3 currentCameraPosition = cineCamera.transform.position;
Vector3 targetCameraPosition = followTarget.position;
bool isCameraClampedX = Mathf.Abs(currentCameraPosition.x - targetCameraPosition.x) > 0.01f;
if (!isCameraClampedX)
{
float deltaX = currentCameraPosition.x - previousCameraPosition.x;
if (Mathf.Abs(deltaX) > 0.0001f)
{
Vector3 newPosition = transform.position + new Vector3(deltaX * parallaxFactor, 0f, 0f);
newPosition.x = Mathf.Clamp(newPosition.x, minX, maxX);
transform.position = newPosition;
}
}
previousCameraPosition = currentCameraPosition;
}
}
What is there that I could fix? Please 😭 It literally does nothing and I cant figure out why