Objective: Give the standard enemies a chance to spawn with a shield that blocks 1 hit.

This is a fairly simple implementation as the shield logic already exists for the player.

I start by adding a new bool as well as a gameobject. …


Objective: Make the Rammer enemy face the player during the chase mechanic.

Currently the rammer just ominously drifts as the player

While the enemy is functionally working, I wanted to clean it up so it looked less goofy.

By adding the following code, we can define a rotation value that will force the enemies to look at the player’s current position.


Objective: Create variations in enemy type.

Before working on new enemy types, I decided to make some balance changes to the game (in preparation for the incoming difficulty hike new enemy types will bring).

I made two changes to the Enemy Laser object. First, the Enemy Lasers no longer destroy…


Objective: When the player presses the “C” key, nearby Powerups will pulled towards the player.

After the implementation of the homing missile system, this is a piece of cake to add into a game.

First I create a new GameObject (_tractorBeam) and make it a child of the Player Gameobject…


Objective: Add “Hazards” to the powerup system that inflict negative statuses to the player.

NOTE: I shrank down the sizes on many of the Game Objects so the playing field would be less cluttered. If you have been following along, the changes in size are substantial, but intentional,

As of…


Objective: Limit the player’s ammo maximum capacity. Make the UI reflect this maximum.

This is an extremely simple implementation with multiple ways to achieve the goal.

I started by making a new variable in my Player.cs called _maxAmmo. I set this variable to equal 99. …


Objective: Provide a subtle camera shake when the player takes damage.

Currently there are two forms of feedback to alert the player that they have taken damage; the Lives UI updates and a visual effect on the Player’s controllable ship as well.

Player at 3 lives

Objective: Create a powerup that replaces the player’s laser shot with a powerful homing missile.

Objective: Provide the player with a powerful alternate projectile that actively seeks out enemies.

Currently our player’s only means of destroying enemies comes from their laser (or a Triple Shot of that laser). …


Objective: Add an extra life powerup that will restore one of the player’s missing lives, capped at three.

First, create the new gameobject by dragging the sprite into the Hierarchy

Name it whatever you want.

Next, because I used the same sprite as the player’s ship, I shrank it down and added a Halo effect…


Objective: Provide a powerup drop that will give the player more ammo.

Last time, we created an ammo system to limit the player’s ability to spam projectiles. However, there is no method for the play to gain more ammo currently. They get 15 shots and then the game is essentially…

Jack Leavey

Unity Developer

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