Exemple #1
0
 public SoundInfo(BgmDefine define, AudioClip clip)
 {
     this.define = define;
     this.clip   = clip;
     // Clip名はdefine.keyに強制的に変更する。オペミスで異なった時のため
     this.clip.name = define.key;
 }
Exemple #2
0
        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;
        }
Exemple #3
0
        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;
            }
        }
Exemple #4
0
    /// <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);
    }
Exemple #5
0
    /// <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;
    }