/// <summary> /// Play One shot sending the clip as reference /// </summary> /// <param name="_type"></param> /// <param name="_clip"></param> /// <param name="_volume"></param> public void PlayOneShotByClip(GJ_AudioSetup.AudioTypes _type = GJ_AudioSetup.AudioTypes.SFX, AudioClip _clip = null, float _volume = 1f) { if (_clip) { m_sources[(int)_type].PlayOneShot(_clip, _volume * m_mainVolume); } }
/// <summary> /// Constructor with all needed stuff /// </summary> /// <param name="_key"></param> /// <param name="_type"></param> /// <param name="_clip"></param> /// <param name="_source"></param> /// <param name="_inLoop"></param> /// <param name="_volume"></param> public GJ_AudioItem(string _key = "audio", GJ_AudioSetup.AudioTypes _type = GJ_AudioSetup.AudioTypes.SFX, AudioClip _clip = null, AudioSource _source = null, bool _inLoop = false, float _volume = 1f) { m_clip = _clip; m_source = _source; m_inLoop = _inLoop; m_itemKeyInDictionary = _key; m_clipVolume = _volume; m_type = _type; }
/// <summary> /// Almost like one shot but can be in loop /// </summary> /// <param name="type"></param> /// <param name="clip"></param> /// <param name="volume"></param> /// <param name="inLoop"></param> public void PlayAudioByClip(GJ_AudioSetup.AudioTypes _type = GJ_AudioSetup.AudioTypes.SFX, AudioClip _clip = null, float _volume = 1f, bool _inLoop = false) { if (_clip) { AudioSource source = m_sources[(int)_type]; source.clip = _clip; source.loop = _inLoop; source.volume = _volume * m_mainVolume; source.Play(); } }
/// <summary> /// Creates a new audio items and play its clip /// </summary> /// <param name="type"></param> /// <param name="clip"></param> /// <param name="source"></param> /// <param name="name"></param> /// <param name="inLoop"></param> /// <param name="volume"></param> public void CreateItemAndPlay(bool _addIt = true, string _key = "audio", GJ_AudioSetup.AudioTypes _type = GJ_AudioSetup.AudioTypes.SFX, AudioClip _clip = null, AudioSource _source = null, bool _inLoop = false, float _volume = 1f) { if (_source == null) { _source = m_sources[(int)_type]; } GJ_AudioItem audio = CreateItem(_addIt, _key, _type, _clip, _source, _inLoop, _volume * m_mainVolume); audio.Play(); }
/// <summary> /// Play one shot sending the name of the clip as reference (we need to do the resource load /// </summary> /// <param name="type"></param> /// <param name="clipName"></param> /// <param name="volume"></param> public void PlayOneShotByName(GJ_AudioSetup.AudioTypes _type = GJ_AudioSetup.AudioTypes.SFX, string _clipPath = "", float _volume = 1f) { if (!string.IsNullOrEmpty(_clipPath)) { AudioClip clip = Resources.Load <AudioClip>(_clipPath); if (clip) { m_sources[(int)_type].PlayOneShot(clip, _volume * m_mainVolume); } } }
/// <summary> /// Like one shot but can be in loop (sending the name by name) /// </summary> /// <param name="_type"></param> /// <param name="_clipPath"></param> /// <param name="_volume"></param> /// <param name="_inLoop"></param> public void PlayAudioByName(GJ_AudioSetup.AudioTypes _type = GJ_AudioSetup.AudioTypes.SFX, string _clipPath = "", float _volume = 1f, bool _inLoop = false) { if (!string.IsNullOrEmpty(_clipPath)) { AudioSource source = m_sources[(int)_type]; AudioClip clip = Resources.Load <AudioClip>(_clipPath); if (clip) { source.clip = clip; source.loop = _inLoop; source.volume = _volume * m_mainVolume; source.Play(); } } }
/// <summary> /// Creates a new AudioItem and returns it so can be used /// </summary> /// <param name="type"></param> /// <param name="clip"></param> /// <param name="source"></param> /// <param name="name"></param> /// <param name="inLoop"></param> /// <param name="volume"></param> /// <returns></returns> public GJ_AudioItem CreateItem(bool _addIt = true, string _key = "audio", GJ_AudioSetup.AudioTypes _type = GJ_AudioSetup.AudioTypes.SFX, AudioClip _clip = null, AudioSource _source = null, bool _inLoop = false, float _volume = 1f) { if (_source == null) { _source = m_sources[(int)_type]; } GJ_AudioItem audio = new GJ_AudioItem(_key, _type, _clip, _source, _inLoop, _volume * m_mainVolume); if (_addIt) { AddAudio(audio); } return(audio); }