Exemplo n.º 1
0
        private static UndoPropertyModification[] FilterRotationModifications(IAnimationRecordingState state, ref Dictionary <object, AnimationRecording.RotationModification> rotationModifications)
        {
            AnimationClip activeAnimationClip  = state.activeAnimationClip;
            GameObject    activeRootGameObject = state.activeRootGameObject;
            List <object> list = new List <object>();
            List <UndoPropertyModification> list2 = new List <UndoPropertyModification>();

            foreach (KeyValuePair <object, AnimationRecording.RotationModification> current in rotationModifications)
            {
                AnimationRecording.RotationModification value = current.Value;
                if (state.DiscardModification(value.lastQuatModification.currentValue))
                {
                    AnimationRecording.DiscardRotationModification(value, ref list2);
                    list.Add(current.Key);
                }
                else
                {
                    EditorCurveBinding editorCurveBinding = default(EditorCurveBinding);
                    if (AnimationUtility.PropertyModificationToEditorCurveBinding(value.lastQuatModification.currentValue, activeRootGameObject, out editorCurveBinding) == null)
                    {
                        AnimationRecording.DiscardRotationModification(value, ref list2);
                        list.Add(current.Key);
                    }
                }
            }
            foreach (object current2 in list)
            {
                rotationModifications.Remove(current2);
            }
            return(list2.ToArray());
        }