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

public static GetKeyTangentMode ( Keyframe keyframe, int leftRight ) : TangentMode
keyframe UnityEngine.Keyframe
leftRight int
Результат TangentMode
Пример #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));
            }
        }
Пример #2
0
        // UnityEditor.CurveUtility.cs (c) Unity Technologies
        public static void UpdateTangentsFromMode(AnimationCurve curve, int index)
        {
            if (index < 0 || index >= curve.length)
            {
                return;
            }
            Keyframe key = curve[index];

            if (KeyframeUtil.GetKeyTangentMode(key, 0) == TangentMode.Linear && index >= 1)
            {
                key.inTangent = CalculateLinearTangent(curve, index, index - 1);
                curve.MoveKey(index, key);
            }
            if (KeyframeUtil.GetKeyTangentMode(key, 1) == TangentMode.Linear && index + 1 < curve.length)
            {
                key.outTangent = CalculateLinearTangent(curve, index, index + 1);
                curve.MoveKey(index, key);
            }
            if (KeyframeUtil.GetKeyTangentMode(key, 0) != TangentMode.Smooth && KeyframeUtil.GetKeyTangentMode(key, 1) != TangentMode.Smooth)
            {
                return;
            }
            curve.SmoothTangents(index, 0.0f);
        }