There are three main types of classes in the game.
Controllers - handle behavior, change position, set state, etc.
They get data and objects from providers and change the object’s values depending on the received data.
Providers - they provide data or objects to controllers;
View - classes for UI, and for everything we can see on a screen. They often inherited from MonoBehavior.GameContext -
simple implementation of service locator patternOverview:
we can register and get objects in any place where we want.Validate attribute -
custom attribute, which is used to check any UnityObjects implemented in a certain interface.