Exemplo n.º 1
0
    /// <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));
        }
    }
Exemplo n.º 2
0
    /// <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));
        }
    }