Code Clean Up With Mathf.Clamp

In the last article about Pseudocode, we create an If statement and an If Else statement that restricted the movement boundaries of our Player GameObject on the Y-axis.

Basically, we said that when the Player GameObject reaches 1.5 on the Y-Axis, it cannot go any higher on the screen, and if it reaches -3.8 on the bottom of the screen, it cannot go any lower. This did accurately reflect our Pseudocode, but there is a more optimized way to achieve the same result with fewer lines of code. By creating a space on the screen with a maximum and minimum height that the Player GameObject could navigate within, we were effectively creating a clamp on the Y-axis, and there is a function just for this operation called Mathf.Clamp.

Mathf.Clamp can be used to create a clamp between a minimum and maximum set of float values, and in our case, our minimum and maximum height on the Y-axis. To use Mathf.Clamp, we must identify what is that we are clamping, for us it is the Y-axis, so we would use transform.position.y, and what the minimum and maximum values are, which is -3.8f and 1.5f. Here is what that looks like:

Now, by itself, we cannot use this line as this only works out the position for the Y-axis. So, just as we did within the If statement, we will need to create a new Vector3 and use our Mathf.Clamp function as the Y-axis value. Here is what the full code will look like:

To break this down, we are generating a new position for the Transform of the Player GameObject within a new Vector3 that has a clamped boundary between 1.5 and -3.8 on the Y-axis on our screen.

We have effectively optimized our code by consolidating 4 lines into just one line of code with the same end-result.



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