








Object Oriented Programming Project
April 2022
Purpose:
This project was my final submission to complete Unity's Jr. Programmer Pathway. It demonstrates Object Oriented Programming principles such as
-
Abstraction (The use of removing complex code / calling on methods)
-
Inheritance (The use of a parent class providing features to a child class)
-
Polymorphism (Overriding the features of the parent class with unique features)
-
Encapsulation (Protecting lines of code so values cannot be corrupted)
I also had to use Github to create a repository and differing branches. See my repo here
Methodology:
-
For Abstraction, I created the Enable Gravity button, which uses my BallDrop() method. This method utilizes the EnableGravity() function from each of the balls.
-
For Inheritance I created a BallMovement class. Each of the type of balls were made a child of this class, and all were able to access the EnableGravity() function from the parent class
-
For Polymorphism, I made each ball contain a override method that overrode the level of bounciness from the parent class. As a result, each ball contained a different level of bounciness.
-
For Encapsulation, I protected the time setting for the dollar sign to disappear. I made it display an error message if the developer accidentally put a negative time (for example, -3 instead of 3).
Additional notes:
-
For some reason, making the build into a WEBGL build messes up the position of the buttons and the text. I still need to improve on this.
-
Sometimes the coroutine does not start in the WEBGL build, but it shows no issues in the editor side. Not really sure what's the problem here either.