Example #1
0
    public void OnButtonDownPlay()
    {
        if (m_isPause)
        {
            Debug.Log("Resume");
            SimpleSoundManager.Instance.ResumeBGM();
            m_isPause = false;
        }
        else
        {
            Debug.Log(selectBgmMainName);

            //Play
            Hashtable ht = new Hashtable();
            ht.Add(SimpleSoundManager.HashParam_BGM.introSoundName, selectBgmIntroName);
            ht.Add(SimpleSoundManager.HashParam_BGM.isLoop, m_toggleIsLoop.isOn);
            ht.Add(SimpleSoundManager.HashParam_BGM.volume, m_sliderVolume.value);
            ht.Add(SimpleSoundManager.HashParam_BGM.delay, m_sliderDelayBgm.value);
            ht.Add(SimpleSoundManager.HashParam_BGM.fadeInTime, (m_inputFadeInTime.text == "") ? 0.0f : float.Parse(m_inputFadeInTime.text));
            ht.Add(SimpleSoundManager.HashParam_BGM.fadeOutTime, (m_inputFadeOutTime.text == "") ? 0.0f : float.Parse(m_inputFadeOutTime.text));
            ht.Add(SimpleSoundManager.HashParam_BGM.crossFadeRate, m_sliderCrossFadeRate.value);
            ht.Add(SimpleSoundManager.HashParam_BGM.onIntroStart, new UnityAction(() => calledTextIntroStart.Show()));
            ht.Add(SimpleSoundManager.HashParam_BGM.onIntroComplete, new UnityAction(() => calledTextIntroComplete.Show()));
            ht.Add(SimpleSoundManager.HashParam_BGM.onMainStart, new UnityAction(() => calledTextMainStart.Show()));
            ht.Add(SimpleSoundManager.HashParam_BGM.onMainComplete, new UnityAction(OnPlayBgmComplete));

            m_player = SimpleSoundManager.Instance.PlayBGM(selectBgmMainName, ht);

            if (m_player == null)
            {
                return;
            }

            for (int i = 0; i < m_spectrum.Length; i++)
            {
                m_spectrum[i].audioSource = m_player.source;
            }
        }

        m_buttonPause.gameObject.SetActive(true);
    }
Example #2
0
    protected override void Awake()
    {
        base.isDontDestroy = true;
        base.Awake();

        LoadVolume();
        SceneManager.sceneUnloaded += OnSceneUnloaded;

        for (int i = 0; i < m_sePlayerNum; i++)
        {
            GameObject soundPlayerObj = new GameObject("SoundPlayer" + i.ToString("0"));
            soundPlayerObj.transform.SetParent(transform);
            SoundEffectPlayer player = soundPlayerObj.AddComponent <SoundEffectPlayer>();
            player.Init();
            m_soundEffectPlayers.Add(player);
        }

        GameObject mainBackgroundPlayerObj = new GameObject("MainBackgroundMusicPlayer");
        GameObject subBackgroundPlayerObj  = new GameObject("SubBackgroundMusicPlayer");

        mainBackgroundPlayerObj.transform.SetParent(transform);
        subBackgroundPlayerObj.transform.SetParent(transform);
        m_mainBackgroundPlayer = mainBackgroundPlayerObj.AddComponent <BackGroundMusicPlayer>();
        m_subBackgroundPlayer  = subBackgroundPlayerObj.AddComponent <BackGroundMusicPlayer>();

        //初期化
        m_mainBackgroundPlayer.Init();
        m_subBackgroundPlayer.Init();

        //Dictionaryに追加
        for (int i = 0; i < audioClipListSe.Count; i++)
        {
            m_audioClipDictSe.Add(audioClipListSe[i].name, audioClipListSe[i]);
        }
        for (int i = 0; i < audioClipListBgm.Count; i++)
        {
            m_audioClipDirtBgm.Add(audioClipListBgm[i].name, audioClipListBgm[i]);
        }
    }
Example #3
0
    private BackGroundMusicPlayer PlayBGM(
        string _mainSoundName,
        string _introSoundName,
        float _volume,
        float _delay,
        bool _isLoop,
        float _fadeInTime,
        float _fadeOutTime,
        float _crossFadeRate,
        UnityAction _onIntroStart,
        UnityAction _onIntroComplete,
        UnityAction _onMainStart,
        UnityAction _onMainComplete)
    {
        AudioClip introClip = null;
        AudioClip mainClip  = null;

        //イントロのサウンドの名前に文字が入っているかのチェック
        if (!string.IsNullOrEmpty(_introSoundName))
        {
            //文字が入っていた時
            if (!m_audioClipDirtBgm.ContainsKey(_introSoundName))
            {
                Debug.Log("BGM with that name does not exist :" + _introSoundName);
                return(null);
            }
            introClip = m_audioClipDirtBgm[_introSoundName];
        }

        //音楽ファイルが存在するかの判定
        if (!m_audioClipDirtBgm.ContainsKey(_mainSoundName))
        {
            Debug.Log("BGM with that name does not exist :" + _mainSoundName);
            return(null);
        }

        //音量を規定値に制限
        _volume = Mathf.Clamp01(_volume);

        //フェードをどの程度被せるかを規定値に制限
        _crossFadeRate = 1.0f - Mathf.Clamp01(_crossFadeRate);

        //AudioClip取得
        mainClip = m_audioClipDirtBgm[_mainSoundName];

        //BGM再生部分の作成
        var isFadeIn  = _fadeInTime > 0.0f;
        var isFadeOut = _fadeOutTime > 0.0f;

        if (!isFadeIn && !isFadeOut)
        {
            //BGMを止める
            StopBGM();
        }
        else
        {
            //待ち時間
            var waitTime = (_fadeInTime > _fadeOutTime) ?
                           _crossFadeRate * _fadeOutTime :
                           Mathf.Clamp(_fadeOutTime - ((1.0f - _crossFadeRate) * _fadeInTime), 0.0f, float.PositiveInfinity);

            //メインがプレイ中と何も再生していない時で分ける
            if (m_mainBackgroundPlayer.isPlaying)
            {
                m_subBackgroundPlayer.FadeIn(_fadeInTime, waitTime + _delay);
            }
            else
            {
                m_subBackgroundPlayer.FadeIn(_fadeInTime, _delay);
            }


            //メインがプレイ中と何も再生していない時で分ける
            m_mainBackgroundPlayer.FadeOut(_fadeOutTime, _delay);
        }

        //使っていない方のBGMPlayerに色々設定する
        m_subBackgroundPlayer.mainClip        = mainClip;
        m_subBackgroundPlayer.introClip       = introClip;
        m_subBackgroundPlayer.isLoop          = _isLoop;
        m_subBackgroundPlayer.delay           = _delay;
        m_subBackgroundPlayer.volume          = _volume;
        m_subBackgroundPlayer.onIntroStart    = _onIntroStart;
        m_subBackgroundPlayer.onIntroComplete = _onIntroComplete;
        m_subBackgroundPlayer.onMainStart     = _onMainStart;
        m_subBackgroundPlayer.onMainComplete  = _onMainComplete;
        m_subBackgroundPlayer.Play();

        //SubとMainを交換
        var tmp = m_subBackgroundPlayer;

        m_subBackgroundPlayer  = m_mainBackgroundPlayer;
        m_mainBackgroundPlayer = tmp;

        return(m_mainBackgroundPlayer);
    }