In this course your advice was to never call a script “Manager”, since there is probably a better name, and most importantly to use the singleton pattern as few times as possible.
But then, what would be the best practice to design a Sound Manager? By “Sound Manager” I mean a very handy game object which has the function to play background music and sound effects. Its use is widespread and a lot of other scripts need to access it to be able to play sounds.
My go to solution has been, as you might have imagined, to use a singleton and then call it anywhere simply using SoundManager.instance.PlaySound(...)
.
What is the best practice in creating such an object? Or is the singleton pattern good enough? Is there a better name?