Applying OOP in Unity
If you're around OOP languages enough, you'll eventually hear the phrase everything is an object whispered like a secret prayer between developers. Following OOP principles, everything in a program should be an object, but GameObjects in Unity can represent your classes and structs. However, that's not to say all objects in Unity have to be in the physical scene, so we can still use our newfound programmed classes behind the scenes.
Objects are a class act
Back in Chapter 2, The Building Blocks of Programming, we discussed how a script is transformed into a component when it's added to a GameObject in Unity. Think of this in terms of the OOP principle of composition—GameObjects are the parent containers, and they can be made up of multiple components. This might sound contradictory to the idea of one C# class per script but, in truth, that's more of a guideline for better readability than an actual requirement. Classes...