UnityEditor.AnimationUtility.Internal_UpdateTangents C# (CSharp) Method

Internal_UpdateTangents() private static method

private static Internal_UpdateTangents ( AnimationCurve curve, int index ) : void
curve AnimationCurve
index int
return void
        private static void Internal_UpdateTangents(AnimationCurve curve, int index)
        {
            if ((index >= 0) && (index < curve.length))
            {
                Keyframe key = curve[index];
                if ((GetKeyLeftTangentMode(key) == TangentMode.Linear) && (index >= 1))
                {
                    key.inTangent = Internal_CalculateLinearTangent(curve, index, index - 1);
                    curve.MoveKey(index, key);
                }
                if ((GetKeyRightTangentMode(key) == TangentMode.Linear) && ((index + 1) < curve.length))
                {
                    key.outTangent = Internal_CalculateLinearTangent(curve, index, index + 1);
                    curve.MoveKey(index, key);
                }
                if ((GetKeyLeftTangentMode(key) == TangentMode.ClampedAuto) || (GetKeyRightTangentMode(key) == TangentMode.ClampedAuto))
                {
                    Internal_CalculateAutoTangent(curve, index);
                }
                if ((GetKeyLeftTangentMode(key) == TangentMode.Auto) || (GetKeyRightTangentMode(key) == TangentMode.Auto))
                {
                    curve.SmoothTangents(index, 0f);
                }
                if (((GetKeyLeftTangentMode(key) == TangentMode.Free) && (GetKeyRightTangentMode(key) == TangentMode.Free)) && !GetKeyBroken(key))
                {
                    key.outTangent = key.inTangent;
                    curve.MoveKey(index, key);
                }
                if (GetKeyLeftTangentMode(key) == TangentMode.Constant)
                {
                    key.inTangent = float.PositiveInfinity;
                    curve.MoveKey(index, key);
                }
                if (GetKeyRightTangentMode(key) == TangentMode.Constant)
                {
                    key.outTangent = float.PositiveInfinity;
                    curve.MoveKey(index, key);
                }
            }
        }

Usage Example

示例#1
0
 internal static void UpdateTangentsFromMode(AnimationCurve curve)
 {
     for (int i = 0; i < curve.length; i++)
     {
         AnimationUtility.Internal_UpdateTangents(curve, i);
     }
 }
All Usage Examples Of UnityEditor.AnimationUtility::Internal_UpdateTangents
AnimationUtility