During my 5 months internship at DTT, I had the chance to learn a lot about Unity and C# in general by working on many different Unity minigame packages/templates. One of my favorite tasks was to develop the Minigame: Piano, which is a package/template that is intended to generate piano tile like game levels by using midi files, and to leave as much options as possible for the user to adjust different settings of these levels.

The package allows the user to change the midi file easily by dragging and dropping it into the inspector of the piano settings scriptable object. Other settings include changing the dimensions of the piano keyboard, the speed or tempo of playing the midi file, note scaling, changing the type of controller to use (keyboard, mouse or touch), key mapping or changing the color of the tracks.

Personally, I have enjoyed developing this package the most out of all the other packages that I managed to create. The reason is that I decided to spawn and set the piano's keys and track dimensions completely based on math calculations, allowing the user to adjust the final appearance by changing a few values in the inspector.
I tried to depict the real life piano keyboard as best as I could, taking into account the ordering and offsets of the white and black keys. 
Minigame: Piano
Back to Top