How to make player jump smaller distance if space is pressed for shorter duration?

I literally started with unity yesterday, and I found myself on the tracks of making a movement-oriented 3d platform through the help of various yt tutorials. This is my jump code, (probably copied character for character):` private void Jump()
{
if (grounded)
{
readyToJump = false;

        //Add jump forces
        rb.AddForce(Vector2.up * jumpForce * 1.5f);
        rb.AddForce(normalVector * jumpForce * 0.5f);

        //If jumping while falling, reset y velocity.
        Vector3 vel = rb.velocity;
        if (rb.velocity.y < 0.5f)
            rb.velocity = new Vector3(vel.x, 0, vel.z);
        else if (rb.velocity.y > 0)
            rb.velocity = new Vector3(vel.x, vel.y / 2, vel.z);

        Invoke(nameof(ResetJump), jumpCooldown);
    }
    if (!grounded)
    {
        readyToJump = false;

        //Add jump forces
        rb.AddForce(orientation.forward * jumpForce * 1f);
        rb.AddForce(Vector2.up * jumpForce * 1.5f);
        rb.AddForce(normalVector * jumpForce * 0.5f);

        //Reset Velocity
        rb.velocity = Vector3.zero;

        //Disable dashForceCounter if doublejumping while dashing
        allowDashForceCounter = false;

        Invoke(nameof(ResetJump), jumpCooldown);
    }

    //Walljump
    if (isWallRunning)
    {
        readyToJump = false;

        //normal jump
        if (isWallLeft && !Input.GetKey(KeyCode.D) || isWallRight && !Input.GetKey(KeyCode.A))
        {
            rb.AddForce(Vector2.up * jumpForce * 1.5f);
            rb.AddForce(normalVector * jumpForce * 0.5f);
        }

        //sidwards wallhop
        if (isWallRight || isWallLeft && Input.GetKey(KeyCode.A) || Input.GetKey(KeyCode.D)) rb.AddForce(-orientation.up * jumpForce * 1f);
        if (isWallRight && Input.GetKey(KeyCode.A)) rb.AddForce(-orientation.right * jumpForce * 3.2f);
        if (isWallLeft && Input.GetKey(KeyCode.D)) rb.AddForce(orientation.right * jumpForce * 3.2f);

        //Always add forward force
        rb.AddForce(orientation.forward * jumpForce * 1f);

        //Disable dashForceCounter if doublejumping while dashing
        allowDashForceCounter = false;

        Invoke(nameof(ResetJump), jumpCooldown);
    }
}

private void ResetJump()
{
    readyToJump = true;
}`

Keep in mind i could never write this on my own, so if you do know a solution, a code example, or a really good explanation would be apreciated.

This could help its a tutorial from blackthornprod I mean its 2d and you jump higher instead of further when you hold the the jump key but the foundation is the same. Unfortunately I don’t have time to help you more than this but good luck finding a solution tho:)