Character Controller jittering rather than jumping

I’m a bit baffled by this, you might have gathered I’m following an FPS tutorial by InfoGamer and all the code seems to be fine but I think there’s something either going wrong with isGrounded as even though the jump clearly ‘works’ the player is just jittering in place rather than jumping up as you’d expect.

I checked the documentation for the CharacteController and I don’t seem to have any wrong settings, does anyone have any ideas as to what could be causing the jittering? It sort of moves up slightly and then begins jittering.

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Experimental.Input;

public class FPSController : MonoBehaviour

{
    private InputControls inputControls;

    private CharacterController cc;

    private Vector2 moveAxis;

    [SerializeField] private float walkSpeed;
    [SerializeField] private float strafingSpeed;

    [SerializeField] private float horizontalSensitivity;
    [SerializeField] private float verticalSensitivity;

    [SerializeField] private Transform cameraTransform;
    [SerializeField] private float minCamAngle;
    [SerializeField] private float maxCamAngle;

    private float cameraAngle = 0;


    [SerializeField]private float isJumping;
    [SerializeField]
    private float jumpVelocity;
    private Vector3 jumpVector;
    [SerializeField]
    private float gravityMultiplier;

    private void Awake()

    {
        inputControls = new InputControls();
    }

    private void OnEnable()

    {
        inputControls.FPS.Move.performed += MovementInput;
        inputControls.FPS.Move.Enable();
        inputControls.FPS.MouseX.performed += RotationAxisY;
        inputControls.FPS.MouseX.Enable();
        inputControls.FPS.MouseY.performed += cameraRotationAxisX;
        inputControls.FPS.MouseY.Enable();
        inputControls.FPS.Jump.performed += JumpInput;
        inputControls.FPS.Jump.Enable();
    }

    private void OnDisable()

    {
        inputControls.FPS.Move.performed -= MovementInput;
        inputControls.FPS.Move.Disable();
        inputControls.FPS.MouseX.performed -= RotationAxisY;
        inputControls.FPS.MouseX.Disable();
        inputControls.FPS.MouseY.performed -= cameraRotationAxisX;
        inputControls.FPS.MouseY.Disable();
        inputControls.FPS.Jump.performed -= JumpInput;
        inputControls.FPS.Jump.Disable();
    }

    private void Start()

    {
        cc = GetComponent<CharacterController>();
    }

    void Update()

    {
            PlayerMovement();
    }

    void PlayerMovement()

    {
        Vector3 movement = Vector3.zero;
        movement += transform.forward * moveAxis.y * walkSpeed * Time.deltaTime;
        movement += transform.right * moveAxis.x * strafingSpeed * Time.deltaTime;

        movement += Physics.gravity * gravityMultiplier;
        cc.Move(movement);

        if (cc.isGrounded)

        {
            if (isJumping > 0)

            {
                jumpVector.y = jumpVelocity;
                isJumping = 0;
            }
        }

        else

        {
            jumpVector += Physics.gravity * gravityMultiplier * Time.deltaTime;
        }

        movement += jumpVector;
        movement *= Time.deltaTime;

        cc.Move(movement);

    }

    private void JumpInput (InputAction.CallbackContext context)

    {
        if (cc.isGrounded)
            isJumping = context.ReadValue<float>();
    }

    private void RotationAxisY (InputAction.CallbackContext context)

    {
        float yRotate = context.ReadValue<float>();
        transform.Rotate(new Vector3(0, yRotate, 0) * horizontalSensitivity * Time.deltaTime);
    }

    private void cameraRotationAxisX (InputAction.CallbackContext context)

    {
        cameraAngle += context.ReadValue<float>() * verticalSensitivity * Time.deltaTime;
        cameraAngle = Mathf.Clamp(cameraAngle, minCamAngle, maxCamAngle);

        cameraTransform.localEulerAngles = new Vector3(-cameraAngle, 0, 0);
    }

    private void MovementInput(InputAction.CallbackContext context)

    {
        moveAxis = context.ReadValue<Vector2>();
    }
}

The code is fine but I think the CharacterController is misbehaving.

Figured I would also make sure to post up the video in question I’ve been learning from.

Just fixed it by removing cc.Move(movement); hadn’t realised I had two of them lol.