Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Released]
2.1.0 - 2022-07-30
Added
- Added new decorator 
FluentAudioManager, that similarly to theLoggedAudioManagerwraps anIAudioManager, in this case instead of returning an AudioError directly, we get the instance of the class on which we can then call more functions. Allowing usage as a fluent interface - Added new static class 
AudioChainer, that allows starting a chain of methods and reuses the same class instance between different chains to decrease garbage allocation - Added new method 
DeregisterChild 
Changed
- Adjusted 
AudioManagerSettingsGameObject to have a safety check for when we load a scene and there is already anotherAudioManagerSettingsGameObject the scene - Adjusted 
RemoveSoundto actually delete the underlyingAudioSourcecomponent and deregister and delete all registered children 
2.0.0 - 2022-07-09
Added
- Added new method 
SubscribeSourceChanged - Added new method 
UnsubscribeSourceChanged - Added new method 
RegisterChildAt3DPos - Added new method 
RegisterChildAttachedToGo - Added 
AudioSourceWrapperthat makes to possible to detect changes on theAudioSourceitself 
Changed
- Removed 
PlayAt3DPosition,PlayOneShotAt3DPosition,PlayAttachedToGameObject,PlayOneShotAttachedToGameObject - Overhauled nearly all methods of the AudioManager with a additonal parameter 
ChildTypethat allows using that method for anAudioSourcecreated by eitherRegisterChildAttachedToGo(ChildType.ATTCHD_TO_GO) orRegisterChildAt3DPos(ChildType.AT_3D_POS), the main originalAudioSource(ChildType.PARENT) or all at once (ChildType.ALL) - Overhauled the Example scene to reflect the new changes
 
1.9.0 - 2022-06-19
Added
- Added new method 
UnsubscribeProgressCoroutine 
Changed
- Overhauled and renamed 
SubscribeAudioFinishedtoSubscribeProgressCoroutine, now works with reverse playing songs and the callback has a return type, which decides wheter we unsubscribe the callback, resubscribe for the next iteration of the song or resubscribe it immediatly - Replaced 
SkipForwardandSkipBackwardwith new methodSkipTime, which skips forward if the value is positive or backwards if the value is negative - Replaced 
ValueDataErrorand usedoutkeyword for returning additional values from methods instead 
1.8.0 - 2022-06-02
Added
- Play and Stop buttons on the ScriptableObject that allow to preview the clip with the given settings
 - Added new methods 
GetEnumerator,SetPlaypbackDirection,SkipForwardandSkipBackward 
Changed
- Overhauled the UI and usability of the Example scene
 
1.7.0 - 2022-05-02
Added
- UnitTesting of the DefaultAudioManager, AudioLogger, LoggedAudioManager, ValueDataError, NullAudioManager and ServiceLocator class
 - UILogger for the Example project to log the text shown in the console directly into a Textbox as well
 
Changed
- Split source code into different namespaces, as well as assemblies and folders corresponding to their features
 - Fixed incorrect handling of null objects with the 
AudioLogger,LoggedAudioManagerandDefaultAudioManager - Renamed 
AudioManagertoDefaultAudioManagerto ensure no conflicts with the main namespace - Cached 
new WaitForSecond()calls to decrease memory usage in theLerpVolume,LerpPitchandLerpGroupValuemethod 
1.6.0 - 2022-02-06
Added
- New logger class that allows logging with a given priority level and different underlying 
Debug.Logcalls - Added two new 3D methods which are derivatives of both the 
PlayAt3DPositionandPlayAttachedToGameObjectmethod and support multiple instances of the same sound running at once 
Changed
- Updated AudioManager to have a dropdown toggle, that chooses the current log priority level, which then shows different amount of messages via. the newly added logger class
 - Updated the functionality of all 3D methods to work with copies of the original AudioSource resisding on the AudioManager, this is done to ensure the AudioSource can be moved and deleted without effecting the AudioManager GameObject itself
 
1.5.0 - 2022-01-21
Changed
- AudioManager is now included via. the package manager as a package instead of as single scripts
 
1.4.0 - 2022-01-09
Added
- AudioSourceSetting scriptable objects, which have a seperate new section wich is hidden per default for 3D audio settings
 
Changed
- Replaced old way of adding sounds via. scriptable objects instead
 - Replaced old way to searching for a sound instead of a List into a Dictionary to improve performance, when there are many sounds registered
 - Adjusted methods that use 3D sound to now use the given settings and not have to take the settings every time from the method call
 
1.3.0 - 2022-01-03
Added
- Multiple methods to support the AudioMixer and AudioMixerGroups
 
1.2.0 - 2021-11-20
Changed
- AudioError integration (all methods now return an AudioError enum value instead of a boolean, showing more explicitly how the method failed)
 
1.1.0 - 2021-09-10
Added
- Pausing sound
 - Unpausing sound
 - Adding a sound at runtime
 
Changed
- Improved documentation
 - Added documentation for new methods
 
1.0.0 - 2021-09-04
Added
- Inital release (Playing sound and changing the volume/pitch over time)