コード例 #1
0
        public static float CalculateLerpValueClamp01(float lerpValue, Type easingType, bool isZeroToOne)
        {
            switch (easingType)
            {
            case Type.Linear:
                lerpValue = Linear.InOut(lerpValue);
                break;

            case Type.Quadratic:
                lerpValue = Quadratic.InOut(lerpValue);
                break;

            case Type.Cubic:
                lerpValue = Cubic.InOut(lerpValue);
                break;

            case Type.Quartic:
                lerpValue = Quartic.InOut(lerpValue);
                break;

            case Type.Quintic:
                lerpValue = Quintic.InOut(lerpValue);
                break;

            case Type.Sinusoidal:
                lerpValue = Sinusoidal.InOut(lerpValue);
                break;

            case Type.Exponential:
                lerpValue = Exponential.InOut(lerpValue);
                break;

            case Type.Circular:
                lerpValue = Circular.InOut(lerpValue);
                break;

            case Type.Elastic:
                lerpValue = Elastic.InOut(lerpValue);
                break;

            case Type.Back:
                lerpValue = Back.InOut(lerpValue);
                break;

            case Type.Bounce:
                lerpValue = Bounce.InOut(lerpValue);
                break;

            default:
                return(-1f);
            }

            lerpValue = ClampMinMax(0f, 1f, lerpValue);

            return(lerpValue);
        }
コード例 #2
0
        public void InOut_InputAboveRange_ReturnsDestination()
        {
            Ease  ease = new Linear();
            float x    = 1.5f;

            float expected = ease.Scale.Y;
            float actual   = ease.InOut(x);

            Assert.AreEqual(expected, actual, 0.001f);
        }
コード例 #3
0
        public void InOut_InputBelowRange_ReturnsOrigin()
        {
            Ease  ease = new Linear();
            float x    = -0.5f;

            float expected = 0;
            float actual   = ease.InOut(x);

            Assert.AreEqual(expected, actual, 0.001f);
        }
コード例 #4
0
        public void InOut_InputInRange_ReturnsExpectedValue()
        {
            Ease  ease = new Linear();
            float x    = 0.6f;

            float expected = 0.6f;
            float actual   = ease.InOut(x);

            Assert.AreEqual(expected, actual, 0.001f);
        }
コード例 #5
0
        public void InOut_ChangedScaleInputAboveRange_ReturnsDestination()
        {
            Vector scale = new Vector(4, 6);
            Ease   ease  = new Linear(scale);
            float  x     = 11.1f;

            float expected = ease.Scale.Y;
            float actual   = ease.InOut(x);

            Assert.AreEqual(expected, actual, 0.001f);
        }
コード例 #6
0
        public void InOut_ChangedScaleInputBelowRange_ReturnsOrigin()
        {
            Vector scale = new Vector(4, 6);
            Ease   ease  = new Linear(scale);
            float  x     = -1.1f;

            float expected = 0;
            float actual   = ease.InOut(x);

            Assert.AreEqual(expected, actual, 0.001f);
        }
コード例 #7
0
        public void InOut_ChangedScaleInputInRange_ReturnsExpectedValue()
        {
            Vector scale = new Vector(4, 6);
            Ease   ease  = new Linear(scale);
            float  x     = 2.5f;

            float expected = 3.75f;
            float actual   = ease.InOut(x);

            Assert.AreEqual(expected, actual, 0.001f);
        }