Objective: create a collectable to add more ammo when the player collects it
First I dropped a sprite in the scene, modified the size and added the components (collider and rigidbody) to create the ammo prefab.
Also I added the powerup script to this prefab because it is gonna have the same behaviour than a powerup. The player collects it and executes something.
Objective: set a limited number of laser the player can shoot
To start I declared in the player script an int variable calle “_ammo” to determine the quantity of laser the player can shoot. Then each time the player shoots we decrement the value of the variable by 1 and next I added a conditional to check if the ammo is 0 then the player can not shoot.
The ammo feature is working but the player doesn’t know how many lasers can shoot. So let’s add some UI.
Objective: Make Shield take up to 3 hits and change the color in every time it is damaged
The original shield consisted of a game object disabled and once the player picked the powerup we activated it until the player was damaged.
In order to create this feature I made the shield a prefab and deleted it from the player.
Then I created a variable in the player script to have the reference to the prefab and wrote a function to Instantiate a shield.
Objective: activate thruster when player presses the shift key
In this challenge we are gonna give the player a speed boost when he presses the left shift key and deactivate the thruster when he releases the key.
We have to create a variable to have the reference to the thruster object (and assign it in the inspector) and another variable to manage the extra speed for the player.
Objective: Publish a WebGL Unity Build on Itch.io
Ok let’s say you have your game ready you have to submit your entry for a game jam or any case where you need to publish that game on the Web. In this example we are gonna use Itch.io as a platform to publish our game.
First thing is to have the WebGL Build ready, if you don’t know how to create it I leave you the next link to an article that explain how to do that:
Now you have to sign in in your itch.io …
Objective: Exit game when user presses the escape key
I’m gonna add a feature to exit the game when the player presses the escape key. In order to do that I add the following code in the GameManager script within the Update function.
If you want to quit the game from the unity editor, you have to uncomment the line UnityEditor.EditorApplication.isPlaying = false.
And that’s all! You can exit game using the escape key.
Objective: Use the build option to create the files to test the game on the computer.
Unity the “Build” option to create the necessary files to play or test the game on a specific platform. In order to do that the first step is go to “File > Build Settings”.
Objective: Play a sound effect when the player collects a powerup
Now It is time for the powerups. First I created an empty game object called PowerupAudio as a child of the Audio Manager, unchecked the “Play On Awake” attribute and assigned the clip.
Then in the player script I created an AudioSource variable and assigned the reference in the Inspector. Next I created a public function to play the sound.
Objective: Add an Explosion SFX when Player/Enemy/Asteroid explodes.
In this case we have different objects with the same SFX so let’s get into it. First I Added an AudioSource component to the “Explosion” prefab, checked the “Play On Awake” and assigned the audio clip.
This works for the asteroid because the sound is gonna be played when the explosion prefab is instantiated.
Objective: Play a laser sound effect when the player shoots.
I opened the “Laser” prefab and added an AudioSource component, checked the “Play On Awake” attribute and added the clip to the AudioClip.
That’s it! In this case we don’t have to do anything else, when the player instantiates a laser the sound is gonna play automatically because the “Play on Awake” attribute allows to play the SFX when the GameObject is created.
A Software Engineer passionate about game dev and interactive products with Unity. I consider video games to be the artistic expression of programming.