Skip to content

Releases: Linerichka/SoundSystem-With-Eazy-Sound-Manager

0.2.2.3

25 Mar 17:51
Compare
Choose a tag to compare

Resolved:

  1. Now the SoundPocket class uses a new logic for receiving Audio, which has a positive effect on performance. Now Audio is received immediately when the clip starts playing, its id is used for this. In this regard, an error has also been fixed when it was impossible to manage clips that were duplicated.
  2. Fixed an error when the CheckInstalledClipsAndDisableIfNotInstalled() method in the SoundPocket class had an unsupported character in its name.
  3. Fixed a logical error when the GetAudio(AudioClip audioClip, in Audio.AudioType audioType) method in the EazySoundManager class returned only the first occurrence of the clip, which was misleading, now the method returns a List of all occurrences. In the ListAudio class, the IndexOf(AudioClip) method now also returns a List with indexes of all Audio files containing this clip.
  4. General refactoring and optimization. Numerous overloads of the Play and Prepare methods in the EazySoundManager class have been replaced by single methods with optional arguments.
  5. The EazySoundManager class has removed a function that allowed for certain groups of sounds to achieve the simultaneous existence of only one instance of the Audio class with a unique AudioClip.
  6. Audio classes are now cached and reused instead of creating new ones. This made it possible to reduce garbage allocation to 0. Some garbage can still be allocated at the time of increasing arrays (dictionaries, queues, etc.) which are used in the EazySoundManager class. Also, due to the fact that a custom class is used instead of the usual queue, this allowed a slight increase in performance relative to the approach when classes were created each time.
  7. Special collections have been added that represent the implementation of standard collections in c#, but do not have any checks or exception generation in case of incorrect input, which greatly improves performance (for example, StackFast outperforms Queue by about 2.5 times in terms of speed). All collections use a Generic structure, but at the moment collections can only handle reference types normally.
  8. Fixed a critical bug when calling the Play() method of the Audio class did not have the proper effect, as a result of which the plugin stopped performing the necessary functions and playback of sounds became impossible.
  9. The READMI has been updated.

0.2.2.2

23 Feb 22:22
Compare
Choose a tag to compare

Resolved:

  1. Large-scale refactoring. Since int was used as the key for dictionaries, which can act as an array index, all dictionaries in the EazySoundManager class have been replaced with the AudioList class, this will avoid the overhead associated with dictionaries and gives potential scope for optimization. AudioList, in turn, is an implementation of the standard List, but internally it uses a regular array, all elements of which are static and will never be moved, as a result of which it is guaranteed that one unique int type id corresponds to one element at the same time.
  2. Now in the EazySoundSystem class, when deleting Audio from AudioList, the queue is not used as it was with the dictionary, this avoids unnecessary costs.
  3. Fixed an error when the GetAudioFast() method in the EazySoundManager class did not return an element with index 0.
  4. Fixed an error when the sound did not continue after changing the scene when the corresponding setting was enabled.
  5. Fixed an error when in the Audio class a clip for AudioSource was assigned immediately when creating an instance of the class.
  6. The READMI has been updated.

0.2.2.1

15 Feb 14:06
Compare
Choose a tag to compare

Resolved:

  1. Some variables that duplicated AudioSource values have been removed from the Audio class. This allowed us to slightly reduce the amount of memory that the class consumes during creation, and actually the amount of garbage collected by the garbage collector, as follows from error 0.2.2.0 01.2.
  2. Float value checks using Mathf were removed from the Audio class.Approximately(), this allows you to slightly improve performance when calling the Update() method.
  3. A new method has been added to the Audio class that allows you to instantly stop audio playback, ignoring fade.
  4. A new static method has been added to the Audio class that allows you to reset the internal Id counter.
  5. In the Audio class, the values for AudioSource are now set at the first call to Update, rather than at the time of class creation. This should significantly increase the speed of the Get Audio() method in the Eazy Sound manager class.
  6. The GetAudiosFast() method in the Eazy Sound manager class has been optimized.

0.2.2.0

28 Jan 17:39
Compare
Choose a tag to compare

Resolved:

  1. A new public method GetAudiosFast() has been added to the EazySoundManager class, the method is experimental and can be deleted later. The method allows you to use a condition that is set using the “Predict” argument to get the entire Audio array that corresponds to this condition. Unlike the usual method of obtaining Audio using int Id or AudioClip, this method allows you to obtain several Audio files at once in the form of an array, as a result of which the gain in speed of work on the usual method can be up to several dozen times.
  2. Now Fade In can also be applied only to the first clip in the queue.
  3. Now Fade In can also be applied only to the clip that is played first after calling the Play() method.
  4. Fixed an error when changing Pitch in the SoundPocket class for all Audio that this instance operates on, the setVolume() method was also called and the Fade specified in this SoundPocket class was applied. Due to the peculiarities of calculating linear volume interpolation, due to multiple Pitch changes and the same multiple call to setVolume(), linear interpolation could not be calculated normally. Due to this problem, the SetVolumeInstantly() method has been added to the SoundPocket class, which allows you to change the volume instantly, ignoring the set Fade values and can be called repeatedly without consequences.
  5. Fixed an error when the Fade value in the SoundPocket class was not limited to a range from 0 to positive infinity.
  6. Fixed an error when calling the ResetTimeClipsPlayed() method in the SoundPocket class did not produce the desired result.
  7. Fixed a bug where it was possible to create more than one instance of EazySoundManager by adding a class to the GameObject after initializing the class itself.
  8. Fixed an exception issue: if the EazySoundManager class was created by adding a class to the GameObject before it was actually initialized using a static constructor; the exception message did not explicitly indicate the problem and was misleading.
  9. Exception handling has been added to the EazySoundManager class for more informative exception messages.
  10. General refactoring and optimization. Comments have been changed and new ones have been added.

0.2.1.0

13 Jan 10:36
Compare
Choose a tag to compare

Resolved:

  1. Added the ability to use fade in and fade out for sound clips as well as persist.
  2. The default values in the SoundPocket prefab have been changed, now the default value for fade in and fade out is set to 0.
  3. Now float values are compared using Mathf.Approximately, a minor loss of performance is possible. Other minor improvements.
  4. Fixed an issue when fade in was not working.
  5. Fixed an error with an incorrect range of Pitch values in the SoundPocket class.
  6. Fixed an error with an incorrect range of RandomPitch values in the SoundPocket class
  7. In the SoundPocket class for the fields: _soundVolume, _pitch, _randomPitch; the “Range()” attribute has been added for convenient setting of values using the slider.
  8. The names of the instance and initialized fields in the EazySoundManager class have been adjusted.
  9. The logic of creating and initializing the EazySoundManager class has been redesigned. The FindObjectOfType() call has been removed, depending on the specific case, the performance load when creating a class can be greatly reduced. In this regard, the problem has also been fixed when in some cases you can get an error: “UnityException: FindObjectsOfType is not allowed to be called from a MonoBehaviour constructor (or instance field initializer), call it in Awake or Start instead.”, which was a problem with the Eazy Sound Manager plugin - JackM36/Eazy-Sound-Manager#16 .
  10. Fixed a typo in the English version of the manual when the item number in paragraph 11 was duplicated in the Getting Start section.
  11. The version of both manuals has been updated.
  12. READMI has been corrected, a link to the documentation has been added, for English to the manual of the English version, for Russian to the manual of the Russian version.

0.2.0.0

17 Dec 09:04
Compare
Choose a tag to compare

Resolved:

  1. Added Steam Audio support. In this regard, a new SoundPocketSteamAudio class has been added, which is a child of the SoundPocket class.
  2. General refactoring of all classes. Bringing the Audio and EazySoundManager classes to a single code style. Code optimization.
  3. Added the ability to specify AudioSourse to play music and sound in the EazySoundManager class. In this case, Audio uses part of the AudioSourse settings, instead of overriding them.
  4. Added the ability to play several music videos at once at the same time when changing the corresponding OnlyOnePlayableMusicClip setting in the EazySoundManager class.
  5. Now the AudioSourse volume in Audio is set immediately, rather than interpolated from 0.
  6. AudioSourse in the EazySoundManager class is now cached, instead of constantly creating and deleting. The exceptions are AudioSourse which were created from outside and passed as an argument.
  7. Fixed a bug with the SoundPocketPrefab field in the SoundPocketManager class.
  8. Fixed an error with incorrect operation of linear volume interpolation in the Audio class when the Stop() method was called many times.
  9. Fixed an error when the volume in the Audio class increased dramatically instead of linear interpolation when loading a scene.
  10. Fixed an error when it was possible to specify a volume outside the range 0-1 for the Audio and SoundPocket classes.
  11. Fixed an error when in the EazySoundManager class for the fields: GlobalVolume, GlobalMusicVolume, GlobalSoundsVolume, GlobalUISoundsVolume; it was possible to set a value outside the range 0 and 1.
  12. Fixed an error with incorrect setting of the Max3DDistance and Min3DDistance fields in the Audio class.
  13. Updated READMI.
  14. Updated the manual, added a manual for the English language.

0.1.0.1

13 Oct 14:36
Compare
Choose a tag to compare

Resolved:

  1. Added a manual in Russian.
  2. In the SoundPocketManager class, the “_soundPocket” field has been moved to the first place, and “_soundPocketPrefab” to the second place if you view the class from the inspector.
  3. The “SoundPocketPrefab” field has been added to the SoundPocketManager class, which is intended to replace “_soundPocketPrefab".

0.1.0.0

01 Oct 08:24
Compare
Choose a tag to compare

Resolved:

  1. Now a new system of 4 digits of the form X.Y.Z.W is used for version control, where Y.Z.W obey the rules of Semantic Versioning. Previous packages using the old versioning system will not be changed and will be ignored.
  2. The names of some methods in EazySoundManager have been changed.
  3. Refactoring SoundPocketManager.
  4. The logic of SoundPocketManager has been changed. Now you need to create a new class that inherits from SoundPocketManager, an additional controller is not needed, since SoundPocketManager can now be itself in the role of a controller.
  5. Changing the logic of SoundPocketManager, almost did not affect the process of creating and configuring SoundPocket. Changes: now the SoundPocket must be contained on a separate object, a reference to which must be placed in an instance of the class inherited from SoundPocketManager, in the “Sound Pocket” field, it is also now possible to define an object with SoundPocket as a prefab and create it during the game, for this it must be assigned in the “Sound Pocket Prefab” field, and for an instance of a class inherited from SoundPocketManager, the “CreateSoundPocketHandler()” method must be called
  6. Due to the change in the logic of SoundPocketManager, it is now possible to fully control the life cycle of SoundPocket. Create, delete, enable, disable, ignore method calls. This allows for even more flexibility and performance.
  7. Updated README.

Upgrade from the previous version:
Not supported.

0.0.1.0

24 Sep 12:17
Compare
Choose a tag to compare

Resolved:

  1. General code refactoring.
  2. Improvement and optimization of the EazySoundManager code. The RestoreAudioFromPool() method was removed. Fixed some issues, removed empty arguments from methods, added a mandatory Audio.AudioType argument to the GetAudio() function.
  3. Fixed a bug when clips were not played repeatedly when LoopClips = true.
  4. Irrelevant comments have been removed, some comments have been corrected.
  5. Optimized SoundPocket calculations during Update. Now you can use a huge number of instances of this class, without significantly affecting performance.
  6. The logic of ActionSoundPocketManager has been changed, now a direct call of the required method is assumed using a delegate. At the same time, it is still possible to use the old method when the method is called directly.

Upgrade from the previous version:

  1. Import the plugin into the project.
  2. If EazySoundManager is used directly, conflicts may arise due to invalid arguments in the method call. They must be manually resolved by adding\removing arguments.

0.0.0.7

01 Sep 19:33
a82965f
Compare
Choose a tag to compare

Resolved:

  1. Changed the interaction with several variables. Now variables restrict the input value if necessary.
  2. The logic of Random Pitch has been changed, now it is used not as “Random.Range(-0, RandomPitch)”, but “Random.Range(-RandomPitch, RandomPitch)".
  3. Bug fixed: 0.0.0.7 01
  4. Bug fixed: 0.0.0.7 02
  5. Now the time is no longer used to determine whether the clip was played or not.
  6. Minor improvements and code refactoring.
  7. The code has been optimized, multiple GetAudio() calls from EazySoundManager have been removed.
  8. Corrections in the README.

Upgrade from the previous version:

  1. Import asset.
  2. Set the values of Sound Volume, Pitch, Random Pitch again