Adventures in GameDev with GameDevHQ! Day 13, an introduction to Physics in Unity.

In the past, if you wanted to write a videogame and have your sprites or objects behave realistically to realworld physics rules, you would have to understand a lot of higher math like trigonometry, calculus, and yes…physics, and you would do all of the algorithmic heavy lifting yourself. Thankfully those days are over and you can rely on Unity to do all of the physics for you so you can rely on just the game design logic!

Unity has a couple built in physics engines depending on whether you’re doing a 2D or 3D game, let’s say you’re making the next cool 2D Platformer that relies on physics, you’ll be using the Box2D physics engine. If you’re coding a 3D game, then you’ll be using NVideas PhysX engine. There are more engines available through Unitys packaging system like HAVOK and DOTS as well as more 3rd party extensions available in the Unity asset store that focus on a variety of specific improvements like bones, water, pinball physics or vehicles.

For our purposes, we’ll rely on Unitys built in physics as it’s already a pretty powerful tool. So what does physics in unity do? It allows GameObjects to be controlled by virtual realworld forces like gravity, velocity, acceleration, etc.

Physics work by a combination of Colliders and Rigidbodies.

Colliders tell Unity when..Things Collide! There’s also two types of collisions. Hard Collisions and Trigger Collisions.

Hard Collisions are when two physical objects ram into each other like 2 cars on a race-track slam into one another or when a player runs into a wall. Trigger collisions are things like when a player collects a coin, the coin isn’t going to stop the player cold, the player is just going to keep on running and collecting the coin won’t slow him down one bit!

Colliders won’t really work until the Physics engine is activated and this is done by adding a Rigidbody (or Rigidbody2D) component to your GameObject. Rigidbody, which will introduce properties like gravity, mass, drag, etc. into your object and they will work automatically without you needing to do anything!

While we can access our Rigidbody via a command called GetComponent, this is an advanced topic which we will get to later, but for now we can also access our colliders much more simply with OnCollisionEnter and OnTriggerEnter. Did you recognize the 2 types of collision? You can easily select which one you need via a checkbox telling Unity whether the collider is a trigger or not.

That’s it for now! Tomorrow we’ll take a deeper dive into scripting the colliders with our shootemup game!

--

--

--

cartoonist, game artist, and wanabe gamedev.

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

Finally, Azure Data Factory Can Read & Write XML Files

MVC docker.Io's

Nutanix, script execution has failed with error Authetication bu public key failed.

Learning about myself through Facebook Messenger (and not just the data it’s gathering)

Automate any USSD Service on Android

My Experience with SQL Database Management

Data Types, Expressions and Abstraction in Erlang

Why Sass is sassy and cute

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Esteban Ibarra

Esteban Ibarra

cartoonist, game artist, and wanabe gamedev.

More from Medium

Pitfalls with Unity Unit Tests and [Timeout]

Adding a wave system to our prototype

Creating Elevator in Unity — Part 3: Moving Elevator.

Unity Dev Blog: How To Use Post Processing in Unity — It’s like an Instagram filter for your game!