GetNew() публичный статический Метод

public static GetNew ( float time, float value, TangentMode leftAndRight ) : Keyframe
time float
value float
leftAndRight TangentMode
Результат UnityEngine.Keyframe
Пример #1
0
        public static void ClampCurveRotate360(AnimationCurve rotatecurve, int f, bool rotateCircle)
        {
            float prev = rotatecurve.keys[f - 1].value;
            float curr = rotatecurve.keys[f].value;

            if (rotateCircle)
            {
                //rotate beyond 1 circle
                if (curr < -180f || curr > 180f)
                {
                    return;
                }
                if (prev < -180f || prev > 180f)
                {
                    if (f > 1)
                    {
                        prev = rotatecurve.keys[f - 2].value;
                    }
                }
            }
            while ((curr - prev) > 180)
            {
                curr -= 360;
            }
            while ((curr - prev) < -180)
            {
                curr += 360;
            }
            if (rotatecurve.keys[f].value != curr)
            {
                TangentMode modeIn  = KeyframeUtil.GetKeyTangentMode(rotatecurve.keys[f].tangentMode, (int)rotatecurve.keys[f].inTangent);
                TangentMode modeOut = KeyframeUtil.GetKeyTangentMode(rotatecurve.keys[f].tangentMode, (int)rotatecurve.keys[f].outTangent);
                if (f == rotatecurve.length - 1)
                {
                    modeIn = TangentMode.Linear;
                }
                rotatecurve.MoveKey(f, KeyframeUtil.GetNew(rotatecurve.keys[f].time, curr, modeIn, modeOut));
            }
        }