Timliner function
Timliner function.cs
Timeliner function C#
Code (C#): FunctionLibrary.cs
- 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
- 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) { }}
댓글
댓글 쓰기