#Parallax code attached to the background and it doesnt work at all...

1 messages · Page 1 of 1 (latest)

gilded relic
#

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

gilded relic
#

ohh i think newPosition.x = Mathf.Clamp(newPosition.x, minX, maxX); should be newPosition.x += Mathf.Clamp(newPosition.x, minX, maxX);?

sour rock
#

!code

tight gobletBOT