private static float TransformReativeTime(EEaseType Type, float rt) { if (Type == EEaseType.EaseIn) { rt *= 0.5f; } else if (Type == EEaseType.EaseOut) { rt = (rt * 0.5f) + 0.5f; } return(rt); }
public static float Interpolate(EEaseType Type, float start, float end, float t01) { float delta = end - start; t01 = Mathf.Clamp01(t01); float relT = TransformReativeTime(Type, t01); float c = Type != EEaseType.InOut ? 2 : 1; if (Type == EEaseType.EaseOut) { delta *= ((float)InOut(relT) - 0.5f) * c; } else { delta *= (float)InOut(relT) * c; } return(delta); }
public static Vector3 Interpolate(EEaseType Type, Vector3 start, Vector3 end, float t01) { Vector3 delta = end - start; t01 = Mathf.Clamp01(t01); float relT = TransformReativeTime(Type, t01); float c = Type != EEaseType.InOut ? 2 : 1; if (Type == EEaseType.EaseOut) { delta.x *= ((float)InOut(relT) - 0.5f) * c; delta.y *= ((float)InOut(relT) - 0.5f) * c; delta.z *= ((float)InOut(relT) - 0.5f) * c; } else { delta.x *= (float)InOut(relT) * c; delta.y *= (float)InOut(relT) * c; delta.z *= (float)InOut(relT) * c; } return(delta); }
//補完を取得 static public FEase GetEasingFunction(EEaseType easeType) { FEase ease = LINER; switch (easeType) { case EEaseType.InQuad: ease = new FEase(easeInQuad); break; case EEaseType.OutQuad: ease = new FEase(easeOutQuad); break; case EEaseType.InOutQuad: ease = new FEase(easeInOutQuad); break; case EEaseType.InCubic: ease = new FEase(easeInCubic); break; case EEaseType.OutCubic: ease = new FEase(easeOutCubic); break; case EEaseType.InOutCubic: ease = new FEase(easeInOutCubic); break; case EEaseType.InQuart: ease = new FEase(easeInQuart); break; case EEaseType.OutQuart: ease = new FEase(easeOutQuart); break; case EEaseType.InOutQuart: ease = new FEase(easeInOutQuart); break; case EEaseType.InQuint: ease = new FEase(easeInQuint); break; case EEaseType.OutQuint: ease = new FEase(easeOutQuint); break; case EEaseType.InOutQuint: ease = new FEase(easeInOutQuint); break; case EEaseType.InSine: ease = new FEase(easeInSine); break; case EEaseType.OutSine: ease = new FEase(easeOutSine); break; case EEaseType.InOutSine: ease = new FEase(easeInOutSine); break; case EEaseType.InExpo: ease = new FEase(easeInExpo); break; case EEaseType.OutExpo: ease = new FEase(easeOutExpo); break; case EEaseType.InOutExpo: ease = new FEase(easeInOutExpo); break; case EEaseType.InCirc: ease = new FEase(easeInCirc); break; case EEaseType.OutCirc: ease = new FEase(easeOutCirc); break; case EEaseType.InOutCirc: ease = new FEase(easeInOutCirc); break; case EEaseType.Linear: ease = new FEase(linear); break; case EEaseType.Spring: ease = new FEase(spring); break; case EEaseType.InBounce: ease = new FEase(easeInBounce); break; case EEaseType.OutBounce: ease = new FEase(easeOutBounce); break; case EEaseType.InOutBounce: ease = new FEase(easeInOutBounce); break; /* GFX47 MOD END */ case EEaseType.InBack: ease = new FEase(easeInBack); break; case EEaseType.OutBack: ease = new FEase(easeOutBack); break; case EEaseType.InOutBack: ease = new FEase(easeInOutBack); break; /* GFX47 MOD START */ /*case EaseType.elastic: * ease = new EasingFunction(elastic); * break;*/ case EEaseType.InElastic: ease = new FEase(easeInElastic); break; case EEaseType.OutElastic: ease = new FEase(easeOutElastic); break; case EEaseType.InOutElastic: ease = new FEase(easeInOutElastic); break; /* GFX47 MOD END */ } return(ease); }
public static CurveCallback EaseTypeToCallback(EEaseType easeType) { EaseCallbackProxy proxyCallback; switch (easeType) { case EEaseType.EaseInBack: proxyCallback = EaseInBack; break; case EEaseType.EaseInBounce: proxyCallback = EaseInBounce; break; case EEaseType.EaseInCirc: proxyCallback = EaseInCirc; break; case EEaseType.EaseInCubic: proxyCallback = EaseInCubic; break; case EEaseType.EaseInElastic: proxyCallback = EaseInElastic; break; case EEaseType.EaseInExpo: proxyCallback = EaseInExpo; break; case EEaseType.EaseInOutBack: proxyCallback = EaseInOutBack; break; case EEaseType.EaseInOutBounce: proxyCallback = EaseInOutBounce; break; case EEaseType.EaseInOutCirc: proxyCallback = EaseInOutCirc; break; case EEaseType.EaseInOutCubic: proxyCallback = EaseInOutCubic; break; case EEaseType.EaseInOutElastic: proxyCallback = EaseInOutElastic; break; case EEaseType.EaseInOutExpo: proxyCallback = EaseInOutExpo; break; case EEaseType.EaseInOutQuad: proxyCallback = EaseInOutQuad; break; case EEaseType.EaseInOutQuart: proxyCallback = EaseInOutQuart; break; case EEaseType.EaseInOutQuint: proxyCallback = EaseInOutQuint; break; case EEaseType.EaseInOutSine: proxyCallback = EaseInOutSine; break; case EEaseType.EaseInQuad: proxyCallback = EaseInQuad; break; case EEaseType.EaseInQuart: proxyCallback = EaseInQuart; break; case EEaseType.EaseInQuint: proxyCallback = EaseInQuint; break; case EEaseType.EaseInSine: proxyCallback = EaseInSine; break; case EEaseType.EaseOutBack: proxyCallback = EaseOutBack; break; case EEaseType.EaseOutBounce: proxyCallback = EaseOutBounce; break; case EEaseType.EaseOutCirc: proxyCallback = EaseOutCirc; break; case EEaseType.EaseOutCubic: proxyCallback = EaseOutCubic; break; case EEaseType.EaseOutElastic: proxyCallback = EaseOutElastic; break; case EEaseType.EaseOutExpo: proxyCallback = EaseOutExpo; break; case EEaseType.EaseOutQuad: proxyCallback = EaseOutQuad; break; case EEaseType.EaseOutQuart: proxyCallback = EaseOutQuint; break; case EEaseType.EaseOutSine: proxyCallback = EaseOutSine; break; case EEaseType.Linear: proxyCallback = Linear; break; case EEaseType.Spring: proxyCallback = Spring; break; case EEaseType.Constant: proxyCallback = Constant; break; case EEaseType.EaseOutQuint: proxyCallback = EaseOutQuint; break; default: Debug.LogErrorFormat("TofuAnimator does not implement the ease type {0}", easeType.ToString()); proxyCallback = Constant; break; } return(v => proxyCallback(0, 1, v)); }
public Sequence Curve(EEaseType easeType, float time, FloatValueCallback callback) { _toEnqueue.Add(new Clip(EaseTypeToCallback(easeType), time, callback)); return(this); }
public EaseMove(Transform obj, Vector3 target, EEaseType type, float duration) : base(duration) { _targetPos = target; _object = obj; }