Exemple #1
0
    /// <summary>
    /// 再生中のデータを取得
    /// </summary>
    /// <returns></returns>
    public BGMPlayData[] GetPlayingBGM()
    {
        List <BGMPlayData> playDatas = new List <BGMPlayData>();

        BGMAudioSource audio = null;

        for (int i = 0; i < m_BGMAudioSource.Length; ++i)
        {
            audio = m_BGMAudioSource[i];
            if (audio.playState != BGMPlayState.BGM_STATE_PLAYING &&
                audio.playState != BGMPlayState.BGM_STATE_FADEIN)
            {
                continue;
            }

            if (audio.playData != null)
            {
                BGMPlayData playData = new BGMPlayData();
                playData.Setup(audio.playData);
                playDatas.Add(playData);
            }
        }

        return(playDatas.ToArray());
    }
Exemple #2
0
    //------------------------------------------------------------------------

    /*!
     *          @brief		BGM再生
     */
    //------------------------------------------------------------------------
    public void PlayBGM(AudioClip clip, float volume, double delayTime, float fadeTime, bool loop)
    {
        //	再生リクエスト保存領域検索
        BGMPlayData blankData = GetBlankPlayData();

        if (blankData == null)
        {
            return;
        }


        //	再生リクエストセットアップ
        blankData.Setup(clip, volume, delayTime, fadeTime, loop);


        //	既に再生しているものは受け付けない
        if (IsPlayingSound(blankData) == true)
        {
            blankData.Clear();
        }
    }
Exemple #3
0
    //------------------------------------------------------------------------
    //	@brief		再生
    //------------------------------------------------------------------------
    public void Play(BGMPlayData data)
    {
        //--------------------------------------------------------------------
        //	エラーチェック
        //--------------------------------------------------------------------
        if (data == null)
        {
            return;
        }
#if BUILD_TYPE_DEBUG
        Debug.Log("CALL BGMManager#Play:" + data.dataBGMPath);
#endif
        if (data.dataBGMPath.IsNullOrEmpty())
        {
            Debug.Log("bgmPath is null or empty");
            return;
        }

        // AssetBundle読み込み終了時にactionを呼ばれるとdataの中身が保障されないので一旦ローカルに保存
        BGMPlayData _data = new BGMPlayData();
        _data.Setup(data);

        Action <AudioClip> action = (clip) =>
        {
            //--------------------------------------------------------------------
            //	再生設定
            //--------------------------------------------------------------------
            m_PlayData.Setup(_data);


            //--------------------------------------------------------------------
            //	オーディオクリップセット
            //--------------------------------------------------------------------
            m_AudioClip = clip;


            //--------------------------------------------------------------------
            //	ステータス設定
            //--------------------------------------------------------------------
            m_PlayState.m_playTime   = 0.0f;
            m_PlayState.m_playVolume = 0.0f;
            m_PlayState.m_playState  = BGMPlayState.BGM_STATE_READY;
        };

        if (data.dataAudioClip != null)
        {
            action(data.dataAudioClip);
            return;
        }

        if (data.dataBGMPath == BGMManager.RESOURCE_BGM_01_1)
        {
            string    res_path = GlobalDefine.DATAPATH_SOUND_BGM + data.dataBGMPath;
            AudioClip clip     = Resources.Load(res_path) as AudioClip;
            action(clip);
            return;
        }

        string path = data.dataBGMPath;

        if (path.StartsWith(BGMManager.ASSETBUNELE_BATTLE_PREFIX))
        {
            string asset_bundle_name = "pack_" + path.Substring(0, (BGMManager.ASSETBUNELE_BATTLE_PREFIX + "0000").Length);
            AssetBundler.Create().SetAsAudioClip(asset_bundle_name, path,
                                                 (clip) =>
            {
                if (clip == null)
                {
                    Debug.LogError("NOT_FOUND_AUDIOCLIP:" + path);
                    return;
                }

                action(clip);
            }
                                                 ).Load();
        }
        else
        {
            AssetBundler.Create().SetAsAudioClip(BGMManager.ASSETBUNELE_MENU, path,
                                                 (clip) =>
            {
                if (clip == null)
                {
                    Debug.LogError("NOT_FOUND_AUDIOCLIP:" + path);
                    return;
                }

                action(clip);
            }).Load();
        }
    }