Unable to undo changes to an animation curve, breaks odin

Issue #827 new
Cameron created an issue

When editing an animation curve with the curve editor window open, undoing fails to undo the changes to the animation curves, desyncs the curve window, throws a bunch of errors and undoes whatever you did before editing the curve. Without odin installed, undoing changes to an animation curve works as expected, undoing the most recent change without desyncing the curve editor window.

Using unity 2020.3.22f1, odin 3.0.9.0 with editor only mode disabled on windows.

Error messages printed by odin:

[Error] Failed to parse array length from data '-0.885601044'.
(wrapper dynamic-method) object:Dynamic_GenerationSettings(GenerationSettings&,string,Sirenix.Serialization.EntryType,Sirenix.Serialization.IDataReader)
CustomLogger.LogError() at Y:/Repositories/sirenix-development-framework/Sirenix Solution/Sirenix.Serialization.Config/CustomLogger.cs:59

DebugContext.LogError() at Y:/Repositories/sirenix-development-framework/OdinSerializer/OdinSerializer/Core/Misc/SerializationConfig.cs:223

SerializationNodeDataReader.EnterArray() at Y:/Repositories/sirenix-development-framework/OdinSerializer/OdinSerializer/Core/DataReaderWriters/SerializationNodes/SerializationNodeDataReader.cs:171

Sirenix.Serialization.ArrayFormatter`1<NamedCustomFloat>.DeserializeImplementation() at Y:/Repositories/sirenix-development-framework/OdinSerializer/OdinSerializer/Core/Formatters/ArrayFormatter.cs:54

Sirenix.Serialization.BaseFormatter`1<NamedCustomFloat[]>.Deserialize() at Y:/Repositories/sirenix-development-framework/OdinSerializer/OdinSerializer/Core/Formatters/BaseFormatter.cs:222

Sirenix.Serialization.ComplexTypeSerializer`1<NamedCustomFloat[]>.ReadValue() at Y:/Repositories/sirenix-development-framework/OdinSerializer/OdinSerializer/Core/Serializers/ComplexTypeSerializer.cs:366

Sirenix.Serialization.FormatterEmitter/RuntimeEmittedFormatter`1<GenerationSettings>.ReadDataEntry() at Y:/Repositories/sirenix-development-framework/OdinSerializer/OdinSerializer/Core/Formatters/FormatterEmitter.cs:110

Sirenix.Serialization.EasyBaseFormatter`1<GenerationSettings>.DeserializeImplementation() at Y:/Repositories/sirenix-development-framework/OdinSerializer/OdinSerializer/Core/Formatters/EasyBaseFormatter.cs:40

Sirenix.Serialization.BaseFormatter`1<GenerationSettings>.Deserialize() at Y:/Repositories/sirenix-development-framework/OdinSerializer/OdinSerializer/Core/Formatters/BaseFormatter.cs:222

Sirenix.Serialization.ComplexTypeSerializer`1<GenerationSettings>.ReadValue() at Y:/Repositories/sirenix-development-framework/OdinSerializer/OdinSerializer/Core/Serializers/ComplexTypeSerializer.cs:366

Sirenix.Serialization.Serializer`1<GenerationSettings>.ReadValueWeak() at Y:/Repositories/sirenix-development-framework/OdinSerializer/OdinSerializer/Core/Serializers/Serializer.cs:261

UnitySerializationUtility.DeserializeUnityObject() at Y:/Repositories/sirenix-development-framework/OdinSerializer/OdinSerializer/Unity Integration/UnitySerializationUtility.cs:1881

UnitySerializationUtility.DeserializeUnityObject() at Y:/Repositories/sirenix-development-framework/OdinSerializer/OdinSerializer/Unity Integration/UnitySerializationUtility.cs:1598

UnitySerializationUtility.DeserializeUnityObject() at Y:/Repositories/sirenix-development-framework/OdinSerializer/OdinSerializer/Unity Integration/UnitySerializationUtility.cs:1312

Sirenix.OdinInspector.SerializedScriptableObject.UnityEngine.ISerializationCallbackReceiver.OnAfterDeserialize() at Y:/Repositories/sirenix-development-framework/OdinSerializer/OdinSerializer/Unity Integration/SerializedUnityObjects/SerializedScriptableObject.cs:35

EditorApplication.Internal_CallGlobalEventHandler()

Comments (1)

  1. Log in to comment