Initiating A Camera Shake When The Player Takes Damage

One of the most important aspects of a game is making the player feel immersed in the game itself. Player Immersion is an ever-expanding topic with many arguments, but for today we are going to be addressing Camera Shake. This is a common tool utilized by designers to make the actions performed or witnessed by the player seem more impactful and/or more powerful.

A camera shake, like most other things, can be done in a variety of ways. Commonly though, it is done by simply moving the “transform.position.x” and “transform.position.y” of the camera object in short increments, at random directions, quickly, and over a small amount of time. The camera then resets back to its original position and done. After that, you just need to decide how you want it triggered.

This is what it looks like when you take damage without the screen shake.

This is what it looks like after adding a camera shake when the player takes damage.

Create a new C# script that includes the code seen in this example. Then attach this code to an empty game object. Make your player camera object a child of this object.

Then add this code to your player and make sure to cache the reference to the object that holds the “CameraShake” script.

And that’s it! You can replace the “.15f” float (duration) as seen in the method above in order to adjust the amount of time that the shake will continue, and you can replace the “.4f” float (magnitude) to change the intensity of the shake.

--

--

--

Hi, my name is Adam Reed and I am a software engineer specializing in Unity and C# development. Feel free to scroll through and check out some of my work!

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

Recommended from Medium

Conclusions About Scripting Complex Geometry in Dynamo

Scrum: planning for the unplanned

Using Cincinnati Operator (AKA Update-Service-Operator) in disconnected environments

Setting my VScode settings for projects

misc/side-channel @ DamCTF Oct. 2020

General Motors (NYSE)

How Do You Apply Area In Dev C++

Tips for designing payloads

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
Adam Reed

Adam Reed

Hi, my name is Adam Reed and I am a software engineer specializing in Unity and C# development. Feel free to scroll through and check out some of my work!

More from Medium

Code Optimization- Game Dev Series 145

Mastering Unity Scripting | Summary — Chapter 2: Debugging

Make those scripts talk it out!

Game Dev Digest Issue #124 — New Features

Issue #124 - New Features