Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Make camera not follow target on y-axis while jumping?

I am making a 2D platformer game for my game development class, but I want the camera to only follow the character on the X-axis while the character is jumping. Does someone have an idea how to do this?

My code is here:

using UnityEngine;

public class CameraFollow : MonoBehaviour
{
    //Setter noen "variabler" slik at kameraet følger etter spilleren.
    public Transform target;
    public float smoothSpeed = 0.2f;
    public Vector3 offset;

    //Lar oss bestemme om vi vil ha avgrensning for kameraet eller ikke.
    public bool bounds;

    public Vector3 minCameraPos;
    public Vector3 maxCameraPos;



    private void FixedUpdate()
    {
        //Passer på at kameraet ikke bare følger etter spilleren, men ikke hakker, men her kan også "* Time.deltatime" bli lagt til ved 
        //siden av smoothSpeed, og smoothSpeed endres til f.eks 10, slik at kamera følger karakteren saktere enn det karakteren løper.

        Vector3 desiredPosition = target.position + offset;
        Vector3 smoothedPosition = Vector3.Lerp (transform.position, desiredPosition, smoothSpeed);
        transform.position = smoothedPosition;

        //Hvis "Bounds" er sjekket av, så vil avgrensninger for kameraet bli lagt til, men dette blir lagt til manuelt, slik at det kan endres på fra level til level på en enklere måte.
        if (bounds)
        {
            transform.position = new Vector3(Mathf.Clamp(transform.position.x, minCameraPos.x, maxCameraPos.x),
                Mathf.Clamp(transform.position.y, minCameraPos.y, maxCameraPos.y),
                Mathf.Clamp(transform.position.z, minCameraPos.z, maxCameraPos.z));
        }
    }
}
like image 902
Christine Avatar asked Dec 21 '25 21:12

Christine


1 Answers

This way you can apply offset just to x, z and do not change the Y position of the camera:

Vector3 desiredPosition = new Vector3(target.position.x + offset.x, transform.position.y, target.position.z + offset.z);
like image 91
Dave Avatar answered Dec 23 '25 10:12

Dave