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()); }
private static void DiscardRotationModification(AnimationRecording.RotationModification rotationModification, ref List <UndoPropertyModification> discardedModifications) { if (rotationModification.x.currentValue != null) { discardedModifications.Add(rotationModification.x); } if (rotationModification.y.currentValue != null) { discardedModifications.Add(rotationModification.y); } if (rotationModification.z.currentValue != null) { discardedModifications.Add(rotationModification.z); } if (rotationModification.w.currentValue != null) { discardedModifications.Add(rotationModification.w); } if (rotationModification.eulerX.currentValue != null) { discardedModifications.Add(rotationModification.eulerX); } if (rotationModification.eulerY.currentValue != null) { discardedModifications.Add(rotationModification.eulerY); } if (rotationModification.eulerZ.currentValue != null) { discardedModifications.Add(rotationModification.eulerZ); } }
private static void CollectRotationModifications(AnimationWindowState state, ref UndoPropertyModification[] modifications, ref Dictionary<object, AnimationRecording.RotationModification> rotationModifications) { List<UndoPropertyModification> propertyModificationList = new List<UndoPropertyModification>(); foreach (UndoPropertyModification propertyModification in modifications) { EditorCurveBinding binding = new EditorCurveBinding(); PropertyModification previousValue = propertyModification.previousValue; AnimationUtility.PropertyModificationToEditorCurveBinding(previousValue, state.activeRootGameObject, out binding); if (binding.propertyName.StartsWith("m_LocalRotation")) { AnimationRecording.RotationModification rotationModification; if (!rotationModifications.TryGetValue((object) previousValue.target, out rotationModification)) { rotationModification = new AnimationRecording.RotationModification(); rotationModifications[(object) previousValue.target] = rotationModification; } if (binding.propertyName.EndsWith("x")) rotationModification.x = propertyModification; else if (binding.propertyName.EndsWith("y")) rotationModification.y = propertyModification; else if (binding.propertyName.EndsWith("z")) rotationModification.z = propertyModification; else if (binding.propertyName.EndsWith("w")) rotationModification.w = propertyModification; rotationModification.lastQuatModification = propertyModification; } else if (previousValue.propertyPath.StartsWith("m_LocalEulerAnglesHint")) { AnimationRecording.RotationModification rotationModification; if (!rotationModifications.TryGetValue((object) previousValue.target, out rotationModification)) { rotationModification = new AnimationRecording.RotationModification(); rotationModifications[(object) previousValue.target] = rotationModification; } if (previousValue.propertyPath.EndsWith("x")) rotationModification.eulerX = propertyModification; else if (previousValue.propertyPath.EndsWith("y")) rotationModification.eulerY = propertyModification; else if (previousValue.propertyPath.EndsWith("z")) rotationModification.eulerZ = propertyModification; } else propertyModificationList.Add(propertyModification); } if (propertyModificationList.Count <= 0) return; modifications = propertyModificationList.ToArray(); }
private static void CollectRotationModifications(IAnimationRecordingState state, ref UndoPropertyModification[] modifications, ref Dictionary <object, AnimationRecording.RotationModification> rotationModifications) { List <UndoPropertyModification> list = new List <UndoPropertyModification>(); UndoPropertyModification[] array = modifications; for (int i = 0; i < array.Length; i++) { UndoPropertyModification undoPropertyModification = array[i]; EditorCurveBinding editorCurveBinding = default(EditorCurveBinding); PropertyModification previousValue = undoPropertyModification.previousValue; AnimationUtility.PropertyModificationToEditorCurveBinding(previousValue, state.activeRootGameObject, out editorCurveBinding); if (editorCurveBinding.propertyName.StartsWith("m_LocalRotation")) { AnimationRecording.RotationModification rotationModification; if (!rotationModifications.TryGetValue(previousValue.target, out rotationModification)) { rotationModification = new AnimationRecording.RotationModification(); rotationModifications[previousValue.target] = rotationModification; } if (editorCurveBinding.propertyName.EndsWith("x")) { rotationModification.x = undoPropertyModification; } else if (editorCurveBinding.propertyName.EndsWith("y")) { rotationModification.y = undoPropertyModification; } else if (editorCurveBinding.propertyName.EndsWith("z")) { rotationModification.z = undoPropertyModification; } else if (editorCurveBinding.propertyName.EndsWith("w")) { rotationModification.w = undoPropertyModification; } rotationModification.lastQuatModification = undoPropertyModification; } else if (previousValue.propertyPath.StartsWith("m_LocalEulerAnglesHint")) { AnimationRecording.RotationModification rotationModification2; if (!rotationModifications.TryGetValue(previousValue.target, out rotationModification2)) { rotationModification2 = new AnimationRecording.RotationModification(); rotationModifications[previousValue.target] = rotationModification2; } rotationModification2.useEuler = true; if (previousValue.propertyPath.EndsWith("x")) { rotationModification2.eulerX = undoPropertyModification; } else if (previousValue.propertyPath.EndsWith("y")) { rotationModification2.eulerY = undoPropertyModification; } else if (previousValue.propertyPath.EndsWith("z")) { rotationModification2.eulerZ = undoPropertyModification; } } else { list.Add(undoPropertyModification); } } if (rotationModifications.Count > 0) { modifications = list.ToArray(); } }
private static void ProcessRotationModifications(IAnimationRecordingState state, ref UndoPropertyModification[] modifications) { Dictionary <object, AnimationRecording.RotationModification> dictionary = new Dictionary <object, AnimationRecording.RotationModification>(); AnimationRecording.CollectRotationModifications(state, ref modifications, ref dictionary); foreach (KeyValuePair <object, AnimationRecording.RotationModification> current in dictionary) { AnimationRecording.RotationModification value = current.Value; Transform transform = current.Key as Transform; if (!(transform == null)) { EditorCurveBinding editorCurveBinding = default(EditorCurveBinding); Type type = AnimationUtility.PropertyModificationToEditorCurveBinding(value.lastQuatModification.currentValue, state.activeRootGameObject, out editorCurveBinding); if (type != null) { AnimationRecording.AddRotationPropertyModification(state, editorCurveBinding, value.x); AnimationRecording.AddRotationPropertyModification(state, editorCurveBinding, value.y); AnimationRecording.AddRotationPropertyModification(state, editorCurveBinding, value.z); AnimationRecording.AddRotationPropertyModification(state, editorCurveBinding, value.w); if (value.useEuler) { AnimationRecording.AddRotationPropertyModification(state, editorCurveBinding, value.eulerX); AnimationRecording.AddRotationPropertyModification(state, editorCurveBinding, value.eulerY); AnimationRecording.AddRotationPropertyModification(state, editorCurveBinding, value.eulerZ); Vector3 localEulerAngles = transform.GetLocalEulerAngles(RotationOrder.OrderZXY); Vector3 localEulerAngles2 = transform.GetLocalEulerAngles(RotationOrder.OrderZXY); object obj; if (AnimationRecording.ValueFromPropertyModification(value.eulerX.previousValue, editorCurveBinding, out obj)) { localEulerAngles.x = (float)obj; } object obj2; if (AnimationRecording.ValueFromPropertyModification(value.eulerY.previousValue, editorCurveBinding, out obj2)) { localEulerAngles.y = (float)obj2; } object obj3; if (AnimationRecording.ValueFromPropertyModification(value.eulerZ.previousValue, editorCurveBinding, out obj3)) { localEulerAngles.z = (float)obj3; } if (AnimationRecording.ValueFromPropertyModification(value.eulerX.currentValue, editorCurveBinding, out obj)) { localEulerAngles2.x = (float)obj; } if (AnimationRecording.ValueFromPropertyModification(value.eulerY.currentValue, editorCurveBinding, out obj2)) { localEulerAngles2.y = (float)obj2; } if (AnimationRecording.ValueFromPropertyModification(value.eulerZ.currentValue, editorCurveBinding, out obj3)) { localEulerAngles2.z = (float)obj3; } AnimationRecording.AddRotationKey(state, editorCurveBinding, type, localEulerAngles, localEulerAngles2); } else { Quaternion localRotation = transform.localRotation; Quaternion localRotation2 = transform.localRotation; object obj4; if (AnimationRecording.ValueFromPropertyModification(value.x.previousValue, editorCurveBinding, out obj4)) { localRotation.x = (float)obj4; } object obj5; if (AnimationRecording.ValueFromPropertyModification(value.y.previousValue, editorCurveBinding, out obj5)) { localRotation.y = (float)obj5; } object obj6; if (AnimationRecording.ValueFromPropertyModification(value.z.previousValue, editorCurveBinding, out obj6)) { localRotation.z = (float)obj6; } object obj7; if (AnimationRecording.ValueFromPropertyModification(value.w.previousValue, editorCurveBinding, out obj7)) { localRotation.w = (float)obj7; } if (AnimationRecording.ValueFromPropertyModification(value.x.currentValue, editorCurveBinding, out obj4)) { localRotation2.x = (float)obj4; } if (AnimationRecording.ValueFromPropertyModification(value.y.currentValue, editorCurveBinding, out obj5)) { localRotation2.y = (float)obj5; } if (AnimationRecording.ValueFromPropertyModification(value.z.currentValue, editorCurveBinding, out obj6)) { localRotation2.z = (float)obj6; } if (AnimationRecording.ValueFromPropertyModification(value.w.currentValue, editorCurveBinding, out obj7)) { localRotation2.w = (float)obj7; } AnimationRecording.AddRotationKey(state, editorCurveBinding, type, localRotation.eulerAngles, localRotation2.eulerAngles); } } } } }
private static void ProcessAnimatorModifications(IAnimationRecordingState state, ref Dictionary <object, AnimationRecording.Vector3Modification> positionModifications, ref Dictionary <object, AnimationRecording.RotationModification> rotationModifications, ref Dictionary <object, AnimationRecording.Vector3Modification> scaleModifications) { Dictionary <object, AnimationRecording.RootMotionModification> dictionary = new Dictionary <object, AnimationRecording.RootMotionModification>(); AnimationClip activeAnimationClip = state.activeAnimationClip; GameObject activeRootGameObject = state.activeRootGameObject; Animator component = activeRootGameObject.GetComponent <Animator>(); bool flag = component != null && component.isHuman; bool flag2 = component != null && component.hasRootMotion; bool flag3 = component != null && component.applyRootMotion; List <object> list = new List <object>(); foreach (KeyValuePair <object, AnimationRecording.Vector3Modification> current in positionModifications) { AnimationRecording.Vector3Modification value = current.Value; Transform transform = current.Key as Transform; if (!(transform == null)) { EditorCurveBinding editorCurveBinding = default(EditorCurveBinding); if (AnimationUtility.PropertyModificationToEditorCurveBinding(value.last.currentValue, state.activeRootGameObject, out editorCurveBinding) != null) { bool flag4 = activeRootGameObject.transform == transform; bool flag5 = (flag || flag2 || flag3) && flag4; bool flag6 = flag && !flag4 && component.IsBoneTransform(transform); if (flag6) { Debug.LogWarning("Keyframing translation on humanoid rig is not supported!", transform); list.Add(current.Key); } else if (flag5) { AnimationRecording.RootMotionModification rootMotionModification; if (!dictionary.TryGetValue(transform, out rootMotionModification)) { rootMotionModification = new AnimationRecording.RootMotionModification(); dictionary[transform] = rootMotionModification; } rootMotionModification.lastP = value.last; rootMotionModification.px = value.x; rootMotionModification.py = value.y; rootMotionModification.pz = value.z; list.Add(current.Key); } } } } foreach (object current2 in list) { positionModifications.Remove(current2); } List <object> list2 = new List <object>(); foreach (KeyValuePair <object, AnimationRecording.RotationModification> current3 in rotationModifications) { AnimationRecording.RotationModification value2 = current3.Value; Transform transform2 = current3.Key as Transform; if (!(transform2 == null)) { EditorCurveBinding editorCurveBinding2 = default(EditorCurveBinding); if (AnimationUtility.PropertyModificationToEditorCurveBinding(value2.lastQuatModification.currentValue, state.activeRootGameObject, out editorCurveBinding2) != null) { bool flag7 = activeRootGameObject.transform == transform2; bool flag8 = (flag || flag2 || flag3) && flag7; bool flag9 = flag && !flag7 && component.IsBoneTransform(transform2); if (flag9) { Debug.LogWarning("Keyframing rotation on humanoid rig is not supported!", transform2); list2.Add(current3.Key); } else if (flag8) { AnimationRecording.RootMotionModification rootMotionModification2; if (!dictionary.TryGetValue(transform2, out rootMotionModification2)) { rootMotionModification2 = new AnimationRecording.RootMotionModification(); dictionary[transform2] = rootMotionModification2; } rootMotionModification2.lastR = value2.lastQuatModification; rootMotionModification2.rx = value2.x; rootMotionModification2.ry = value2.y; rootMotionModification2.rz = value2.z; rootMotionModification2.rw = value2.w; list2.Add(current3.Key); } } } } foreach (object current4 in list2) { rotationModifications.Remove(current4); } List <object> list3 = new List <object>(); foreach (KeyValuePair <object, AnimationRecording.Vector3Modification> current5 in scaleModifications) { AnimationRecording.Vector3Modification value3 = current5.Value; Transform transform3 = current5.Key as Transform; if (!(transform3 == null)) { EditorCurveBinding editorCurveBinding3 = default(EditorCurveBinding); if (AnimationUtility.PropertyModificationToEditorCurveBinding(value3.last.currentValue, state.activeRootGameObject, out editorCurveBinding3) != null) { bool flag10 = activeRootGameObject.transform == transform3; bool flag11 = flag && !flag10 && component.IsBoneTransform(transform3); if (flag11) { Debug.LogWarning("Keyframing scale on humanoid rig is not supported!", transform3); list3.Add(current5.Key); } } } } foreach (object current6 in list3) { scaleModifications.Remove(current6); } AnimationRecording.ProcessRootMotionModifications(state, ref dictionary); }
private static void ProcessRotationModifications(IAnimationRecordingState state, ref Dictionary <object, AnimationRecording.RotationModification> rotationModifications) { AnimationClip activeAnimationClip = state.activeAnimationClip; GameObject activeRootGameObject = state.activeRootGameObject; foreach (KeyValuePair <object, AnimationRecording.RotationModification> current in rotationModifications) { AnimationRecording.RotationModification value = current.Value; Transform transform = current.Key as Transform; if (!(transform == null)) { EditorCurveBinding editorCurveBinding = default(EditorCurveBinding); Type type = AnimationUtility.PropertyModificationToEditorCurveBinding(value.lastQuatModification.currentValue, state.activeRootGameObject, out editorCurveBinding); if (type != null) { AnimationRecording.AddRotationPropertyModification(state, editorCurveBinding, value.x); AnimationRecording.AddRotationPropertyModification(state, editorCurveBinding, value.y); AnimationRecording.AddRotationPropertyModification(state, editorCurveBinding, value.z); AnimationRecording.AddRotationPropertyModification(state, editorCurveBinding, value.w); Quaternion localRotation = transform.localRotation; Quaternion localRotation2 = transform.localRotation; object obj; if (AnimationRecording.ValueFromPropertyModification(value.x.previousValue, editorCurveBinding, out obj)) { localRotation.x = (float)obj; } object obj2; if (AnimationRecording.ValueFromPropertyModification(value.y.previousValue, editorCurveBinding, out obj2)) { localRotation.y = (float)obj2; } object obj3; if (AnimationRecording.ValueFromPropertyModification(value.z.previousValue, editorCurveBinding, out obj3)) { localRotation.z = (float)obj3; } object obj4; if (AnimationRecording.ValueFromPropertyModification(value.w.previousValue, editorCurveBinding, out obj4)) { localRotation.w = (float)obj4; } if (AnimationRecording.ValueFromPropertyModification(value.x.currentValue, editorCurveBinding, out obj)) { localRotation2.x = (float)obj; } if (AnimationRecording.ValueFromPropertyModification(value.y.currentValue, editorCurveBinding, out obj2)) { localRotation2.y = (float)obj2; } if (AnimationRecording.ValueFromPropertyModification(value.z.currentValue, editorCurveBinding, out obj3)) { localRotation2.z = (float)obj3; } if (AnimationRecording.ValueFromPropertyModification(value.w.currentValue, editorCurveBinding, out obj4)) { localRotation2.w = (float)obj4; } if (value.useEuler) { AnimationRecording.AddRotationPropertyModification(state, editorCurveBinding, value.eulerX); AnimationRecording.AddRotationPropertyModification(state, editorCurveBinding, value.eulerY); AnimationRecording.AddRotationPropertyModification(state, editorCurveBinding, value.eulerZ); Vector3 vector = transform.GetLocalEulerAngles(RotationOrder.OrderZXY); Vector3 vector2 = vector; object obj5; if (AnimationRecording.ValueFromPropertyModification(value.eulerX.previousValue, editorCurveBinding, out obj5)) { vector.x = (float)obj5; } object obj6; if (AnimationRecording.ValueFromPropertyModification(value.eulerY.previousValue, editorCurveBinding, out obj6)) { vector.y = (float)obj6; } object obj7; if (AnimationRecording.ValueFromPropertyModification(value.eulerZ.previousValue, editorCurveBinding, out obj7)) { vector.z = (float)obj7; } if (AnimationRecording.ValueFromPropertyModification(value.eulerX.currentValue, editorCurveBinding, out obj5)) { vector2.x = (float)obj5; } if (AnimationRecording.ValueFromPropertyModification(value.eulerY.currentValue, editorCurveBinding, out obj6)) { vector2.y = (float)obj6; } if (AnimationRecording.ValueFromPropertyModification(value.eulerZ.currentValue, editorCurveBinding, out obj7)) { vector2.z = (float)obj7; } vector = AnimationUtility.GetClosestEuler(localRotation, vector, RotationOrder.OrderZXY); vector2 = AnimationUtility.GetClosestEuler(localRotation2, vector2, RotationOrder.OrderZXY); AnimationRecording.AddRotationKey(state, editorCurveBinding, type, vector, vector2); } else { Vector3 localEulerAngles = transform.GetLocalEulerAngles(RotationOrder.OrderZXY); Vector3 closestEuler = AnimationUtility.GetClosestEuler(localRotation, localEulerAngles, RotationOrder.OrderZXY); Vector3 closestEuler2 = AnimationUtility.GetClosestEuler(localRotation2, localEulerAngles, RotationOrder.OrderZXY); AnimationRecording.AddRotationKey(state, editorCurveBinding, type, closestEuler, closestEuler2); } } } } }
private static void CollectRotationModifications(AnimationWindowState state, ref UndoPropertyModification[] modifications, ref Dictionary <object, AnimationRecording.RotationModification> rotationModifications) { List <UndoPropertyModification> propertyModificationList = new List <UndoPropertyModification>(); foreach (UndoPropertyModification propertyModification in modifications) { EditorCurveBinding binding = new EditorCurveBinding(); PropertyModification previousValue = propertyModification.previousValue; AnimationUtility.PropertyModificationToEditorCurveBinding(previousValue, state.activeRootGameObject, out binding); if (binding.propertyName.StartsWith("m_LocalRotation")) { AnimationRecording.RotationModification rotationModification; if (!rotationModifications.TryGetValue((object)previousValue.target, out rotationModification)) { rotationModification = new AnimationRecording.RotationModification(); rotationModifications[(object)previousValue.target] = rotationModification; } if (binding.propertyName.EndsWith("x")) { rotationModification.x = propertyModification; } else if (binding.propertyName.EndsWith("y")) { rotationModification.y = propertyModification; } else if (binding.propertyName.EndsWith("z")) { rotationModification.z = propertyModification; } else if (binding.propertyName.EndsWith("w")) { rotationModification.w = propertyModification; } rotationModification.lastQuatModification = propertyModification; } else if (previousValue.propertyPath.StartsWith("m_LocalEulerAnglesHint")) { AnimationRecording.RotationModification rotationModification; if (!rotationModifications.TryGetValue((object)previousValue.target, out rotationModification)) { rotationModification = new AnimationRecording.RotationModification(); rotationModifications[(object)previousValue.target] = rotationModification; } if (previousValue.propertyPath.EndsWith("x")) { rotationModification.eulerX = propertyModification; } else if (previousValue.propertyPath.EndsWith("y")) { rotationModification.eulerY = propertyModification; } else if (previousValue.propertyPath.EndsWith("z")) { rotationModification.eulerZ = propertyModification; } } else { propertyModificationList.Add(propertyModification); } } if (propertyModificationList.Count <= 0) { return; } modifications = propertyModificationList.ToArray(); }
private static void ProcessRotationModifications(AnimationWindowState state, ref UndoPropertyModification[] modifications) { Dictionary <object, AnimationRecording.RotationModification> rotationModifications = new Dictionary <object, AnimationRecording.RotationModification>(); AnimationRecording.CollectRotationModifications(state, ref modifications, ref rotationModifications); using (Dictionary <object, AnimationRecording.RotationModification> .Enumerator enumerator = rotationModifications.GetEnumerator()) { while (enumerator.MoveNext()) { AnimationRecording.RotationModification rotationModification = enumerator.Current.Value; EditorCurveBinding binding = new EditorCurveBinding(); System.Type editorCurveBinding = AnimationUtility.PropertyModificationToEditorCurveBinding(rotationModification.lastQuatModification.currentValue, state.activeRootGameObject, out binding); Quaternion localRotation1 = state.activeRootGameObject.transform.localRotation; Quaternion localRotation2 = state.activeRootGameObject.transform.localRotation; object outObject1; if (AnimationRecording.ValueFromPropertyModification(rotationModification.x.previousValue, binding, out outObject1)) { localRotation1.x = (float)outObject1; } object outObject2; if (AnimationRecording.ValueFromPropertyModification(rotationModification.y.previousValue, binding, out outObject2)) { localRotation1.y = (float)outObject2; } object outObject3; if (AnimationRecording.ValueFromPropertyModification(rotationModification.z.previousValue, binding, out outObject3)) { localRotation1.z = (float)outObject3; } object outObject4; if (AnimationRecording.ValueFromPropertyModification(rotationModification.w.previousValue, binding, out outObject4)) { localRotation1.w = (float)outObject4; } if (AnimationRecording.ValueFromPropertyModification(rotationModification.x.currentValue, binding, out outObject1)) { localRotation2.x = (float)outObject1; } if (AnimationRecording.ValueFromPropertyModification(rotationModification.y.currentValue, binding, out outObject2)) { localRotation2.y = (float)outObject2; } if (AnimationRecording.ValueFromPropertyModification(rotationModification.z.currentValue, binding, out outObject3)) { localRotation2.z = (float)outObject3; } if (AnimationRecording.ValueFromPropertyModification(rotationModification.w.currentValue, binding, out outObject4)) { localRotation2.w = (float)outObject4; } Vector3 eulerAngles1 = localRotation1.eulerAngles; Vector3 eulerAngles2 = localRotation2.eulerAngles; object outObject5; if (AnimationRecording.ValueFromPropertyModification(rotationModification.eulerX.previousValue, binding, out outObject5)) { eulerAngles1.x = (float)outObject5; } object outObject6; if (AnimationRecording.ValueFromPropertyModification(rotationModification.eulerY.previousValue, binding, out outObject6)) { eulerAngles1.y = (float)outObject6; } object outObject7; if (AnimationRecording.ValueFromPropertyModification(rotationModification.eulerZ.previousValue, binding, out outObject7)) { eulerAngles1.z = (float)outObject7; } if (AnimationRecording.ValueFromPropertyModification(rotationModification.eulerX.currentValue, binding, out outObject5)) { eulerAngles2.x = (float)outObject5; } if (AnimationRecording.ValueFromPropertyModification(rotationModification.eulerY.currentValue, binding, out outObject6)) { eulerAngles2.y = (float)outObject6; } if (AnimationRecording.ValueFromPropertyModification(rotationModification.eulerZ.currentValue, binding, out outObject7)) { eulerAngles2.z = (float)outObject7; } AnimationRecording.AddRotationKey(state, binding, editorCurveBinding, eulerAngles1, eulerAngles2); } } }