Example #1
0
    /// <summary>
    /// BGMを再生する
    /// </summary>
    /// <param name="aFilePath">resources/sound/bgm/ + aFilePath</param>
    public static void playBgm(string aFilePath, LoopType aLoopType = LoopType.normalConnect, float aVolume = 1)
    {
        if (mBgm == null)
        {
            mBgm      = MyBehaviour.create <AudioSource>();
            mBgm.name = "BGM AudioSource";
            mBgm.gameObject.AddComponent <MyBehaviour>();
            GameObject.DontDestroyOnLoad(mBgm);
        }

        mBgm.clip   = Resources.Load <AudioClip>("sound/bgm/" + aFilePath);
        mBgm.time   = 0;
        mBgm.volume = aVolume;
        mBgm.Play();
        MyBehaviour tBehaviour = mBgm.gameObject.GetComponent <MyBehaviour>();

        if (mBgmLoopCoroutine != null)
        {
            tBehaviour.StopCoroutine(mBgmLoopCoroutine);
        }
        switch (aLoopType)
        {
        case LoopType.normalConnect:
            mBgmLoopType      = aLoopType;
            mBgmLoopCoroutine = tBehaviour.StartCoroutine(runNormalConnect(mBgm));
            break;
        }
    }
Example #2
0
    public void play()
    {
        float tCurrentMusicTime = MusicScoreData.quarterBeatToMusicTime(mScore.mCurrentQuarterBeat);

        mPlayer.mCurrentSecond = tCurrentMusicTime;
        if (tCurrentMusicTime < 0)
        {
            mPlayer.playDelayed(-tCurrentMusicTime);
            mMoveScoreCoroutine = mScore.moveBy(new Vector3(0, (mScore.mStartMusicPosition - mScore.positionY) * (1 - 0.5f / tCurrentMusicTime), 0), -tCurrentMusicTime + 0.5f, () => {
                mMoveScoreCoroutine   = null;
                mAdjustScoreCoroutine = mBehaviour.StartCoroutine(adjustScoreToPlayer());
            });
        }
        else
        {
            mPlayer.play();
            mAdjustScoreCoroutine = mBehaviour.StartCoroutine(adjustScoreToPlayer());
        }
    }
Example #3
0
    /// <summary>
    /// BGMをフェードする
    /// </summary>
    /// <param name="aDuration">フェード時間(s)</param>
    /// <param name="aVolume">フェード後のボリューム</param>
    public static Coroutine fadeBgm(float aDuration, float aVolume, Action aCallback = null)
    {
        MyBehaviour tBehaviour = mBgm.GetComponent <MyBehaviour>();

        if (tBehaviour == null)
        {
            tBehaviour = mBgm.gameObject.AddComponent <MyBehaviour>();
        }

        if (mBgmFadeCoroutine != null)
        {
            tBehaviour.StopCoroutine(mBgmFadeCoroutine);
        }
        mBgmFadeCoroutine = tBehaviour.StartCoroutine(fadeBgmCoroutine(mBgm, aVolume, aDuration, aCallback));
        return(mBgmFadeCoroutine);
    }
Example #4
0
 //子ルーチン実行
 static public void runCoroutine(IEnumerator aCoroutine)
 {
     ins.StartCoroutine(aCoroutine);
 }