ah try starting a timer when the player stops being "grounded" (i.e. touching the floor) and *hasn't* jumped for maybe 0.5f, then -= Time.deltaTime every frame, and only set grounded to false when that timer is done? That's what I usually do, though I tend to do a small raycast from the player's feet so it might be more difficult if you're using a collider to check that!