ForceMagic’s Audio Toolbox is a Unity3D package that automate the AudioSource management through pooling, wrappers and automatic detection when AudioSource are done playing.
Focused on low memory allocation and performance the layer approach allows sounds to be grouped, played and crossfaded.
The package provides few sample MonoBehaviors that demonstrate how it can be used, but they would be efficient in game code. If you are a programmer by trade or not, you should have enough example to replicate in your own code how to trigger your sounds and setup your layers without thinking about the performance.
The mindset behind the architecture is extensibility and injection based. Which means that most of the classes functions are virtual, fields or properties are protected instead of private. This way classes can be extended or modified without too much effort.
Then, each classes inherits from an interface or multiple interfaces. That way you can re-implement only parts of the code as you need to. It is also very useful if you are maintaining Unit Tests, you will be able to use the Moq library without too much effort since it works well with interface and virtual functions.
API Compatibility Level : .Net Standard 2.0
Support High Stripping Engine Code.
- Automatic AudioSource management
- Detects when an AudioSource has finished playing
- Internal AudioSource Pooling
- Audio System layer based gives the ability to
- Play sound on different layers
- Set or smooth volume on a specific layer
- Cross fade an active layer playing sounds with new sounds
- Use scale or unscaled delta time when smoothing or crossfading.
- Replicate AudioSource settings
- Can be used as Scriptable Object or Serialized fields
Upcoming features :
- Support Pause for Crossfading and Smooth volume on layers.
- Fully support 3D sounds (currently they won’t attach themselves to the 3D object transform)