Applying gravity to get desired affect, how do you stop the delay of gravity?

Okay, another issue… I’m having an issue where my character jumps he is floaty, but I have accounted for part of the issue by adding…

    public float fallMultiplier;

    private void FixedUpdate()
    {
        MovePlayer();

        if (rigibody.velocity.y < 0)
        {
            rigibody.velocity += Vector3.up * Physics.gravity.y * fallMultiplier * Time.deltaTime;
        }
    }

Although this solves the floaty issue I still have a problem where the application of gravity is no instant so there is still a delay between the jump and when gravity multiplier is applied. But I can also replicate this issue just by walking off an object. I can walk forward and I’m still floating until the gravity multiplier kicks in. Am I doing something wrong?

This is a diagram of what I’m trying to explain and want to happen

Ok, I found some solutions, but still feels floaty IDK if it’s me or what but this is what I did, YouTube and another unity form, had basically the same explanation. If someone has a better way to execute this please let me know. Because I’m still not happy with the final results (it still feels similar to the second diagram still in the above picture).

I did this

        [Header("Gravity")]
    public float fallMultiplier;
    public float gravityScale = 1f;
    public static float globalGravity = -9.81f;

    private void FixedUpdate()
    {
        Vector3 gravity = globalGravity * gravityScale * Vector3.up;
        if (rigibody.velocity.y < 0)
        {
            rigibody.AddForce(gravity * fallMultiplier, ForceMode.Acceleration);
        }
        else
        {
            rigibody.AddForce(gravity, ForceMode.Acceleration);
        }

        MovePlayer();
    }