public SoundInfo(BgmDefine define, AudioClip clip) { this.define = define; this.clip = clip; // Clip名はdefine.keyに強制的に変更する。オペミスで異なった時のため this.clip.name = define.key; }
public void SetBgmLoop(float loop_time, float end_time) { var s = SoundManager.Instance.GetBgmAudioSource(); if (bgmDefine == null) { bgmDefine = new BgmDefine(); } bgmDefine.loopTime = loop_time; bgmDefine.endTime = end_time; }
public void ResetParams() { volume = 1.0f; fadeDuration = 1.0f; frame = 0; bgmDefine = null; if (fadeInCoroutineHandle != null) { SoundManager.Instance.StopCoroutine(fadeInCoroutineHandle); fadeInCoroutineHandle = null; } if (fadeOutCoroutineHandle != null) { SoundManager.Instance.StopCoroutine(fadeOutCoroutineHandle); fadeOutCoroutineHandle = null; } }
/// <summary> /// BGMの登録 /// </summary> /// <param name="define">Define.</param> /// <param name="clip">Clip.</param> public void RegisterBgm(BgmDefine define, AudioClip clip) { if (_infoList == null) { _infoList = new List <SoundInfo> (); } var info = _infoList.Find(x => x.define.key == define.key); if (info != null) { Debug.LogError("already exist key. " + define.key); return; } info = new SoundInfo(define, clip); _infoList.Add(info); }
/// <summary> /// BGMの再生 /// </summary> /// <param name="key">Key.</param> public void PlayBgm(string key) { var info = _infoList.Find(x => x.clip.name == key); if (info == null) { return; } // 複数サウンド同時再生はこのサンプルでは考慮していません var source = GetComponent <AudioSource> (); if (source == null) { source = gameObject.AddComponent <AudioSource> (); } source.clip = info.clip; source.Play(); // 再生するBGMのstartTimeのセット source.time = info.define.startTime; _currentBgmDefine = info.define; _currentBgmSource = source; }