/// <summary> /// BGM再生 /// </summary> /// <param name="bgmType"></param> /// <param name="loopFlg"></param> public void PlayBGM(BGM_Type bgmType, bool loopFlg = true) { int index = (int)bgmType; currentBgmIndex = index; if (index < 0 || BGM_Clips.Length <= index) { return; } //同じBGMの場合は何もしない if (BGM_Sources[0].clip != null && BGM_Sources[0].clip == BGM_Clips[index]) { return; } else if (BGM_Sources[1].clip != null && BGM_Sources[1].clip == BGM_Clips[index]) { return; } //フェードでBGM開始 if (BGM_Sources[0].clip == null && BGM_Sources[1].clip == null) { BGM_Sources[0].loop = loopFlg; BGM_Sources[0].clip = BGM_Clips[index]; BGM_Sources[0].Play(); } else { //クロスフェード処理 StartCoroutine(CrossFadeChangeBMG(index, loopFlg)); } }
/// <summary> /// BGM再生 /// </summary> /// <param name="bgmNo"></param> /// <param name="loopFlg"></param> public void PlayBGM(BGM_Type bgmNo, bool loopFlg = true) { int index = (int)bgmNo; currentBgmIndex = index; if (index < 0 || BGM.Length <= index) { return; } // 同じBGMの場合は何もしない if (BGMsources[0].clip != null && BGMsources[0].clip == BGM[index]) { return; } else if (BGMsources[1].clip != null && BGMsources[1].clip == BGM[index]) { return; } // フェードでBGM開始 if (BGMsources[0].clip == null && BGMsources[1].clip == null) { BGMsources[0].loop = loopFlg; BGMsources[0].clip = BGM[index]; BGMsources[0].Play(); BGMsources[0].DOFade(GameData.instance.BGM_Volume, CROSS_FADE_TIME); } else { // クロスフェード StartCoroutine(CrossfadeChangeBMG(index, loopFlg)); } }