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); }
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]); } }
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); }