WaitForSecondsRealtime() not working?

So, I have a script that is meant to make a block fall a certain amount of time after the player lands on the block. However, the block falls instantly. Can you tell me what I’m doing wrong in my script?

using System.Collections;
using UnityEngine;

public class FallingBlock : MonoBehaviour
{
    Rigidbody2D rb;

    float gScale;
    public float time = 3;

    void Awake()
    {
        rb = GetComponent<Rigidbody2D>();
    }

    private void Start()
    {
        gScale = rb.gravityScale;
        rb.gravityScale = 0;
    }

    void OnCollisionEnter(Collision collision)
    {
        if (collision.transform.tag == "Player") Fall(); 
    }

    void Fall()
    {
        StartCoroutine(WaitFor());
        gScale = rb.gravityScale;
        rb.gravityScale = 0;
    }

    public IEnumerator WaitFor()
    {
        yield return new WaitForSecondsRealtime(time);
    }
}

Never mind, turns out it was a mistake on my part with the rigidbody.