OnCollisionEnter2D будет работать только тогда, когда он сталкивается с землей (один кадр). вероятно, вам нужно создать bool для этого условия. это не может быть лучшим вариантом. сделайте это правдой, когда он сталкивается с землей, и сделайте его ложным, когда он покинет землю. Напишите свой код в функции обновления.
bool _canJump;
void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
rb2d.AddForce(new Vector2(rb2d.velocity.x, Jumpforce));
}
}
void OnCollisionEnter2D(Collision2D col)
{
if (col.collider.tag == "groundTag")
{
_canJump = true;
}
}
void OnCollisionExit2D(Collision2D col)
{
if (col.collider.tag == "groundTag")
{
_canJump = true;
}
}