com.homemade.modules.audio
info
Version: 1.1.0
Github: Link
Dependencies:
This is simple package for audio manager, can use in any project.
1. Import
Download from my registries
- Open Package Manager in Unity.
- Select Packages tab: My Registries.
- Download package: com.homemade.modules.audio
Follow the setup: Click here.
Import from github
- Link github: Link package
- Open Package Manager in Unity
Follow this guide: Click here.
2. How to use
AudioController
After you install the package, create an empty object name AudioManager add the script AudioController.

There are 2 buttons for generate clip name:
SoundClips.cs
namespace com.homemade.modules.audio
{
public class SoundClips
{
public const string SoundFx = "SoundFx";
}
}
MusicClips.cs
namespace com.homemade.modules.audio
{
public class MusicClips
{
public const string BG_Music = "BG_Music";
}
}
note
This is follow by the name of the audio file.
AudioCase
This AudioController will create AudioCase to controll the audio.
public enum AudioType
{
Music = 0,
Sound = 1
}
[Serializable]
public class AudioCase
{
public AudioSource source;
public AudioType type;
public event Action OnAudioEnded;
public AudioCase(AudioClip clip, AudioSource source, AudioType type)
{
this.source = source;
this.type = type;
this.source.clip = clip;
}
public void Complete()
{
OnAudioEnded?.Invoke();
}
public void Play()
{
source.Play();
}
public void Stop()
{
source.Stop();
}
}
API
Play
using com.homemade.modules.audio;
public class Game : MonoBehaviour
{
private void Start()
{
// Sound
AudioController.Instance.PlaySound(SoundClips.SoundFx);
// Music
AudioController.Instance.PlayMusic(MusicClips.BG_Music);
}
}
PlaySmart
using com.homemade.modules.audio;
public class Game : MonoBehaviour
{
private void Start()
{
// Sound
AudioCase sound = AudioController.Instance.PlaySmartSound(SoundClips.SoundFx);
// Music
AudioCase music = AudioController.Instance.PlaySmartMusic(MusicClips.BG_Music);
}
}
tip
You can direct controll the audio base on the AudioCase.
PlayRandomMusic
using com.homemade.modules.audio;
public class Game : MonoBehaviour
{
private void Start()
{
AudioController.Instance.PlayRandomMusic();
}
}
Release
using com.homemade.modules.audio;
public class Game : MonoBehaviour
{
private void Start()
{
// Sound
AudioController.Instance.ReleaseSounds();
// Music
AudioController.Instance.ReleaseMusic();
}
}
StopStream
using com.homemade.modules.audio;
public class Game : MonoBehaviour
{
private IEnumerator Start()
{
AudioCase sound = AudioController.Instance.PlaySmartSound(SoundClips.SoundFx);
yield return new WaitForSeconds(2f);
AudioController.Instance.StopStream(sound);
}
}
TurnOnOff
using com.homemade.modules.audio;
public class Game : MonoBehaviour
{
private void Start()
{
// Sound
AudioController.Instance.TurnOnOffSound(true);
// Music
AudioController.Instance.TurnOnOffMusic(true);
}
}
ChangeVolume
using com.homemade.modules.audio;
public class Game : MonoBehaviour
{
private void Start()
{
// You should set volume from 0f to 1f
// Sound
AudioController.Instance.ChangeSoundVolume(1f);
// Music
AudioController.Instance.ChangeMusicVolume(1f);
}
}
AudioUtils
OnComplete
using com.homemade.modules.audio;
public class Game : MonoBehaviour
{
private void Start()
{
AudioCase sound = AudioController.Instance.PlaySmartSound(SoundClips.SoundFx);
IEnumerator action = sound.OnComplete(() =>
{
Debug.Log("Sound complete");
});
StartCoroutine(action);
}
}
note
It's very simple and esay to use. Hope you guys like it.