This article is a part of our 2D Platformer Tutorial Serie. Be sure to check the other articles!
In our other article, we managed to create our Player Sprite, and paint our map but there’s one thing still to be done: when we run the game, the player goes through the ground! How do we fix that and make our ground solid?
On your Player
First thing to do on your player is to add a RigidBody2D. A RigidBody is the component Unity uses to check if a given GameObject is part of the Physics System, i.e. has gravity enabled and/or has collisions to be checked.
But there is a slight trick: Collisions are not exactly handled by the RigidBody but by another component, the aptly named Collider!
Go back to your Player GameObject and add a new BoxCollider2D component. You can play on the offset and size to better fit your sprite.
After adding these components to your player, you’re done with it! Now, it’s on to the Tilemap.
On your Tilemap
When creating a 2D level using grids/tilemaps, it is important to seperate what you paint into layers and not do it all on the same tilemap for several reasons:
- Easier to Navigate in the Editor
- You can play on the sorting order
- Solid layers can be set appropriately
So how do we turn our ground solid? Well, it’s simple. Select the appropriate Tilemap (in our demo, this is the SolidTerrain GameObject), Click on “Add Component” and select “TilemapCollider2D”.
And now… you’re done! Seriously, that’s all! The TilemapCollider2D does the heavy lifting of computing collisions etc for our tilemap, no matter its shape so that we don’t have to.
As is tradition, there’s actually one last thing to check. If you play around at this point, you’ll realize something: when the player collides with the ground, it actually starts to rotate!
This is actually to be expected since we are dealing with rigidbodies. Thankfully the fix is, once again, very simple: go to your player’s RigidBody component and, in constraints, tick the Z box for FreezeRotation.
Anyway, that’s all on this topic for now, you can check out the other articles in the main project page here!