Timliner function

Timliner function.cs

Timeliner function C#

Code (C#): FunctionLibrary.cs
  1. using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;

    public static class FunctionLibrary
    {
        private static readonly WaitForEndOfFrame _frameWait = new WaitForEndOfFrame();

        /// <summary>
        /// Timeliner Iterator Function, USE ExtensionObject.Instance.StartCoroutine() for Singleton design
        /// </summary>
        /// <param name="action"> (x)=>y=x</param>
        /// <param name="from"></param>
        /// <param name="to"></param>
        /// <param name="time"></param>
        /// <returns></returns>
        public static IEnumerator TimelinerLinear(System.Action<float> action, System.Action<bool> over, float from, float to, float time, bool bTrue) {

            float t = 0;
            while (t < 1) {
                t += Time.deltaTime/time;
                action(Mathf.Lerp(from, to, t));
                yield return _frameWait;
            }
            action(to);
            over(bTrue);
        }

        public static IEnumerator TimelinerSine(System.Action<float> action, float from, float to, float time)
        {

            float t = 0;
            float f = 0;
            while (t < 1)
            {
                t += Time.deltaTime / time;
                f = Mathf.Sin(t *Mathf.PI);
                action(Mathf.Lerp(from, to, f));
                yield return _frameWait;
            }
            action(from);
        }
    }

Use case

Use case

Code (C#): UI_Fade.cs
  1. using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using UnityEngine.UI;
    using UnityEngine.Playables;

    public class UI_Fade : MonoSingleton<UI_Fade>
    {
        public Image image;

        public virtual void FadeSine(float time)
        {
            StartCoroutine(FunctionLibrary.TimelinerSine((x) => ValueChanged(x),  0, 1.5f, time));
        }

        public virtual void FadeIn(float time)
        {
            StartCoroutine(FunctionLibrary.TimelinerLinear((x) =>ValueChanged(x), (b)=>Over(b), 0, 1, time, true));
        }

        public virtual void FadeOut(float time)
        {
            StartCoroutine(FunctionLibrary.TimelinerLinear((x) => ValueChanged(x), (b)=>Over(b), 1, 0, time, false));
        }

        public virtual void ValueChanged(float value)
        {
            Color col = image.color;
            col.a = value;
            image.color = col;
        }

        public virtual void Over(bool bTrue) { }

    }



댓글

이 블로그의 인기 게시물

About AActor!!! "UObject" has no member "BeginPlay"

UNREAL Android build information

Shader informations nice blog ~ ~