Limiting Ammo Count in Unity

For today’s article, I’ll be going over how I limited the number of lasers that player ship can fire. If you’re interested, you can take a look at https://github.com/hlimbo/Space-Shooter-Tutorial to see more of the code in depth.

Modifications to the Player and UiManager scripts need to be made in order to support limiting the amount of lasers a player ship can fire. In Player script I introduced the following 2 variables to keep track of the number of lasers it can fire:

[SerializeField]
private int startingAmmoCount = 15;
private int currentAmmoCount

The [SerializeField] attribute in C# exposes startingAmmoCount in the Unity Editor when the Player component is attached to the player ship. This is useful if I want to later change the starting ammo count to a different value.

Next, in the Update() function of the Player script, I add in the following logic:

Lastly, in the UiManager script, I create the UpdateAmmoText(int ammoCount) function to update the number of lasers a Player can fire that will be displayed on screen as a Text component:

In the above code, $"{ammoCount}" is another way to express ammoCount.ToString(). Placing a dollar sign ($) in front of the double quotes and wrapping the variable name around {} brackets in C# is called string interpolation. It is especially useful for strings that require multiple variables to be outputted as strings. The alternative would be using the + operator to concatenate the variables together (e.g. forcing them into strings by implicitly calling their ToString() functions) but requires the programmer to include a pair of quotes followed by the + operator every time a variable is introduced when building the entire string.

Thanks for reading :)

Software Engineer