The player is able to leave an unlimited amount of comments and ratings on an observable.
The player is also able to create spot observables. The spot observables can be placed anywhere on any object. Once the spot observable is placed it will appear as a red marker in 3D space.
To interact with an observable the player has to be close by to the target object and press a Left Mouse Button. Once the player interacts with an observable, the main feedback UI window will appear.
To create a spot observable, a player has to target a surface at close range and press Right Mouse Button. The comment is text-based feedback that contains the following attributes: contribution type, title, and comment.
There are three contribution types:
- Suggestion
- Criticism
- Opinion
The registry is a class that stores all the observable objects. Once the SaveLoad class tries to save the data, the Data class is fetched from the Registry class that contains all the contribution data.
The data is then loaded at the start of the game. The data is stored in a JSON file that has a name equal to the name given in the active user profile. It is easy to integrate this system into an external project. Once the project files are imported to a Unity project, the only thing that needs to be done is to assign a profile to the GameManager by calling SetProfile(Profile profile) event that is located in the GlobalEvents class.
Once that is done the system should work out of the box. The main requirements that need to exist in the scene for the system to function are the core UI system, GameManager, and an Interaction system.
Having these things in the scene will allow the player to interact with all objects that have an Observable component.