Exemplo n.º 1
0
    /// <summary>
    /// シーンのフェード
    /// </summary>
    /// <param name="frame">シーンさせるフレーム</param>
    /// <param name="fadeInFinished">フェードイン後に行う関数</param>
    /// <returns></returns>
    public IEnumerator SceneFadeCoroutine(float frame, FadeInFinishedFunc fadeInFinished)
    {
        state = FadeState.FadeIn;
        float speed = 1 / frame;

        for (int i = 0; i < frame; i++)
        {
            Alpha += speed;
            yield return(null);
        }

        //Finished Func
        fadeInFinished();

        //update state
        state = FadeState.FadeOut;

        //out
        for (int i = 0; i < frame; i++)
        {
            Alpha -= speed;
            yield return(null);
        }

        //end state
        state = FadeState.None;

        yield break;
    }
Exemplo n.º 2
0
    /// <summary>
    /// 全チャネルをフェードインさせるコルーチン(小さくする)
    /// </summary>
    /// <param name="frame">フェードさせるフレーム</param>
    /// <param name="volume">フェード先のボリューム(0.0~1.0)</param>
    /// <param name="func">フェードイン終了後に行う関数</param>
    /// <returns></returns>
    public IEnumerator SoundFadeInAllCoroutine(float frame, float volume = 0.0f, FadeInFinishedFunc func = null)
    {
        //状態更新
        state = FadeState.FadeIn;

        //1フレーム当たりの増減させる量
        float value = (1 - volume) / frame;

        //フェードフレーム分繰り返す
        for (int f = 0; f < frame; ++f)
        {
            //毎フレームチャネル数分繰り返す
            for (int c = 0; c < channel.Length; ++c)
            {
                GetChannel(c).volume -= value;
            }
            yield return(null);
        }

        //補正
        for (int c = 0; c < channel.Length; ++c)
        {
            GetChannel(c).volume = volume;
        }

        //コールバック
        if (func != null)
        {
            func();
        }

        //状態更新
        state = FadeState.None;
        yield break;
    }
Exemplo n.º 3
0
    /// <summary>
    /// フェードインするコルーチン
    /// </summary>
    /// <param name="frame">フェードさせるフレーム</param>
    /// <param name="fadeInFinished">フェードイン終了後に行う関数</param>
    /// <returns></returns>
    public IEnumerator FadeInCoroutine(float frame, FadeInFinishedFunc fadeInFinished = null)
    {
        state = FadeState.FadeIn;
        float speed = 1 / frame;

        for (int i = 0; i < frame; i++)
        {
            Alpha += speed;
            yield return(null);
        }

        if (fadeInFinished != null)
        {
            fadeInFinished();
        }
        state = FadeState.None;
        yield break;
    }
Exemplo n.º 4
0
    /// <summary>
    /// 全チャネルのフェードイン開始命令
    /// </summary>
    /// <param name="frame">フェードさせるフレーム</param>
    /// <param name="volume">フェード先のボリューム</param>
    /// <param name="func">フェードイン終了後に行う関数</param>
    public void StartSoundFadeInAll(float frame, float volume = 0.0f, FadeInFinishedFunc func = null)
    {
        var coroutine = SoundFadeInAllCoroutine(frame, volume, func);

        StartCoroutine(coroutine);
    }
Exemplo n.º 5
0
    /// <summary>
    /// フェードイン(小さくなる)の開始命令
    /// </summary>
    /// <param name="frame">フェードさせるフレーム</param>
    /// <param name="volume">フェード先のボリューム(0.0~1.0)</param>
    /// <param name="channelIndex">フェードさせるチャネルの番号</param>
    /// <param name="func">フェードイン終了後に行う関数</param>
    public void StartSoundFadeIn(float frame, float volume = 0.0f, int channelIndex = 0, FadeInFinishedFunc func = null)
    {
        var coroutine = FadeInCoroutine(frame, volume, channelIndex, func);

        StartCoroutine(coroutine);
    }
Exemplo n.º 6
0
    /// <summary>
    /// フェードインするコルーチン(小さくなる方)
    /// </summary>
    /// <param name="frame">フェードさせるフレーム</param>
    /// <param name="volume">フェード先のボリューム(0.0~1.0)</param>
    /// <param name="fadeInFinished">フェードイン終了後に行う関数</param>
    /// <returns></returns>
    public IEnumerator FadeInCoroutine(float frame, float volume = 0.0f, int channelIndex = 0, FadeInFinishedFunc func = null)
    {
        //フェード状態更新
        state = FadeState.FadeIn;

        //1フレーム当たりの増減させる量
        float value = (1 - volume) / frame;

        for (int i = 0; i < frame; ++i)
        {
            GetChannel(channelIndex).volume -= value;
            yield return(null);
        }

        //補正
        GetChannel(channelIndex).volume = volume;

        //コールバック
        if (func != null)
        {
            func();
        }

        //フェード状態更新
        state = FadeState.None;
        yield break;
    }