How would I apply gravity to a game object and have it collide with the ground beneath it by using raycasts without using Rigidbodies?

So if I had a project with two game objects that both had BoxCollider2D components attached to them one being the Player and the other the ground how would I go about appling gravity to the Player so that it would collide with the ground below it?

I thought I could apply gravity to the Player by using the the transform.Translate function in order to force the Player to travel downwards on the Y axis. While this is happening I could shoot a raycast from the bottom of the Player’s bounding box so that when it hits the ground I could use the “hit” information to make the Player stop once it reaches the ground.

But I don’t know how to go about doing this? Could someone help me with trying to make this work?

But why? Thee is built in gravity and collision. If you don’t want to use rigidbodies it means writing your own physics code. Just look at how people do it in engines that don’t have physics. to make it fall using translate you would have to call translate from update or a coroutine and calculate how much to move it to keep uniform motion. You could have a coroutine called fall and exit it isGrounded=true or when the raycast = true; But what are you trying to accomplish by not using rigidbodies?

I am beginner as well but here what I tried simple and easy way. And it works
I created an empty game object, make it child of the Character.
Place it a little below it.
I used set position to move towards child empty game object with a speed variable.
I calculated Speed variable in a fixed update if not grounded
set speed = speed + rate float variable.
and if grounded set speed to 0.
try changing rate to make acceleration slow or fast.