コード例 #1
0
ファイル: BGMManager.cs プロジェクト: mliuzailin/GitGame
    //------------------------------------------------------------------------

    /*!
     *          @brief		再生済みチェック
     */
    //------------------------------------------------------------------------
    private bool IsPlayingSound(BGMPlayData data)
    {
        // 全てのオーディオソースを検索して再生中でないかを確認
        BGMAudioSource src = null;

        for (int i = 0; i < m_BGMAudioSource.Length; i++)
        {
            src = m_BGMAudioSource[i];
            if (src == null)
            {
                continue;
            }

            if (src.playState == BGMPlayState.BGM_STATE_NONE)
            {
                continue;
            }

            // 指定のサウンドを既に再生していないかチェック
            if (src.ChkPlayingSound(data) == false)
            {
                continue;
            }

            // 同じサウンドでもフェードアウト中なら再生していないことにする
            if (src.playState == BGMPlayState.BGM_STATE_FADEOUT)
            {
                return(false);
            }

            return(true);
        }

        return(false);
    }
コード例 #2
0
ファイル: BGMManager.cs プロジェクト: mliuzailin/GitGame
    /// <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());
    }
コード例 #3
0
    public static bool PlaySound(string se_name, bool se_flag = true)
    {
        if (ResourcesLoader.ContainsKey(se_name) == false)
        {
            return(false);
        }

        if (se_flag)
        {
            if (SoundPlayerObj == null)
            {
                SoundPlayerObj   = new GameObject("SoundPlayer");
                SoundAudioSource = SoundPlayerObj.AddComponent <AudioSource>();
            }
            SoundAudioSource.PlayOneShot(ResourcesLoader.GetObjectHandle(se_name));
        }
        else
        {
            if (BGMPlayerObj == null)
            {
                BGMPlayerObj          = new GameObject("BGMPlayer");
                BGMAudioSource        = BGMPlayerObj.AddComponent <AudioSource>();
                BGMAudioSource.clip   = ResourcesLoader.GetObjectHandle(se_name);
                BGMAudioSource.volume = 1.0f;
                BGMAudioSource.loop   = true;
                BGMAudioSource.Play();
            }
            else
            {
                if (BGMAudioSource)
                {
                    if (BGMAudioSource.isPlaying)
                    {
                        BGMAudioSource.Stop();
                    }
                    else
                    {
                        BGMAudioSource.Play();
                    }
                }
                else
                {
                    BGMAudioSource = BGMPlayerObj.AddComponent <AudioSource>();
                    if (BGMAudioSource)
                    {
                        BGMAudioSource.clip   = ResourcesLoader.GetObjectHandle(se_name);
                        BGMAudioSource.volume = 1.0f;
                        BGMAudioSource.loop   = true;
                        BGMAudioSource.Play();
                    }
                }
            }
        }

        return(true);
    }
コード例 #4
0
ファイル: BGMManager.cs プロジェクト: mliuzailin/GitGame
    //------------------------------------------------------------------------

    /*!
     *          @brief		BGM停止
     *          @param[in]	bool		(fade)		フェード
     *          @param[in]	float		(sec)		時間(秒)
     */
    //------------------------------------------------------------------------
    public void StopBGM(bool fade, float sec)
    {
        //	再生中の全てのオーディオソースに対し、停止命令を出す
        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;
            }

            //	停止
            audio.Stop(sec);
        }
    }
コード例 #5
0
ファイル: BGMManager.cs プロジェクト: mliuzailin/GitGame
    /// <summary>
    /// ミュート設定
    /// </summary>
    /// <param name="is_mute"></param>
    private void Mute(bool is_mute)
    {
        BGMAudioSource audio = null;

        for (int i = 0; i < m_BGMAudioSource.Length; i++)
        {
            audio = m_BGMAudioSource[i];
            if (audio == null)
            {
                continue;
            }

            if (audio.isMute != is_mute)
            {
                // ミュート設定
                audio.Mute(is_mute);
            }
        }
    }
コード例 #6
0
    public static IEnumerator SetFadeTimer(float start_val, float end_val, float end_time)
    {
        FadeTimer = new CFadeTimer(start_val, end_val, end_time);

        while (true)
        {
            float t = FadeTimer.CalcTime();
            BGMAudioSource.volume = t;

            if (t <= 0.0f)
            {
                BGMAudioSource.Stop();
                yield break;
            }
            else
            {
                yield return(new WaitForSeconds(Time.deltaTime));
            }
        }
    }
コード例 #7
0
ファイル: BGMManager.cs プロジェクト: mliuzailin/GitGame
    //------------------------------------------------------------------------

    /*!
     *          @brief		開始処理
     */
    //------------------------------------------------------------------------
    protected override void Awake()
    {
        base.Awake();


        //--------------------------------------------------------------------
        //	データ領域作成
        //--------------------------------------------------------------------
        for (int i = 0; i < m_BGMPlayData.Length; i++)
        {
            m_BGMPlayData[i] = new BGMPlayData();
        }


        //--------------------------------------------------------------------
        //	再生管理クラス生成
        //--------------------------------------------------------------------
        for (int i = 0; i < m_BGMAudioSource.Length; i++)
        {
            m_BGMAudioSource[i] = new BGMAudioSource();
            m_BGMAudioSource[i].Setup(m_AudioSource[i]);
        }
    }
コード例 #8
0
ファイル: BGMManager.cs プロジェクト: mliuzailin/GitGame
    //------------------------------------------------------------------------

    /*!
     *          @brief		定期更新処理
     */
    //------------------------------------------------------------------------
    void Update()
    {
        if (!LocalSaveManager.HasInstance)
        {
            return;
        }

        //--------------------------------------------------------------------
        //	Mute設定
        //--------------------------------------------------------------------
        if (mIsMute == false)
        {
            LocalSaveOption cOption = LocalSaveManager.Instance.LoadFuncOption();
            if (cOption != null)
            {
                bool bOptionActiveBGM = (cOption.m_OptionBGM == (int)LocalSaveDefine.OptionBGM.OFF);
                Mute(bOptionActiveBGM);
            }
        }
        else
        {
            Mute(true);
        }

        //--------------------------------------------------------------------
        // 再生リクエスト処理
        //--------------------------------------------------------------------
        BGMPlayData data = null;

        for (int i = 0; i < m_BGMPlayData.Length; i++)
        {
            data = m_BGMPlayData[i];
            if (data == null)
            {
                continue;
            }


            if (data.dataUsing == false)
            {
                continue;
            }


            // 再生クラスの空きを検索
            BGMAudioSource audio = null;
            for (int j = 0; j < m_BGMAudioSource.Length; j++)
            {
                audio = m_BGMAudioSource[j];
                if (audio == null)
                {
                    continue;
                }


                if (audio.playState != BGMPlayState.BGM_STATE_NONE)
                {
                    continue;
                }

                // 再生
                audio.Play(data);
                data.Clear();
                break;
            }
        }


        //--------------------------------------------------------------------
        //	ダッキング処理
        //--------------------------------------------------------------------
        if (mDuckingTime != 0.0f &&
            mDuckingTime > AudioSettings.dspTime)
        {
            if (mDuckingEnable == false)
            {
                StartCoroutine(TransVolume(1.0f, 0.5f, 0.05f, true));
            }
        }
        else
        {
            if (mDuckingEnable == true)
            {
                StartCoroutine(TransVolume(0.5f, 1.0f, 0.6f, false));
            }
        }



        //--------------------------------------------------------------------
        //	再生管理クラス更新
        //--------------------------------------------------------------------
        for (int i = 0; i < m_BGMAudioSource.Length; i++)
        {
            BGMAudioSource audio = m_BGMAudioSource[i];
            if (audio == null)
            {
                continue;
            }


            if (audio.playState != BGMPlayState.BGM_STATE_READY &&
                audio.playState != BGMPlayState.BGM_STATE_PLAYING &&
                audio.playState != BGMPlayState.BGM_STATE_FADEIN &&
                audio.playState != BGMPlayState.BGM_STATE_FADEOUT)
            {
                continue;
            }

            // 再生情報更新
            audio.Update();

            //	ダッキング処理
            audio.duckingScale = mDuckingVolumeScale;
        }
    }