SerializationAbortException: Data layout mismatch

Issue #353 open
Jérémy GUERY
created an issue

What happened?

When I try to duplicate a specific ScriptableObject with specifics serialized classes a serialization error appears.

How can we reproduce it?

  • Download and open the project in attachment with Unity 2017.1.0p3
  • Import Odin Inspector 1.0.6.9
  • Setup a "Skill" Scriptable Object like the picture in attachment (add a SkillBehaviourOwnerBuffable and add a BuffDenfensiveMatrix in the Buffs list)
  • Try to duplicate the ScriptableObject with Ctrl-D
  • See the error in the console

I think the property "private Guid targetGuid;" in BuffDefensiveMatrix is causing the error. When I remove that property there is no issue anymore.

SerializationAbortException: The following error was logged during serialization or deserialization: Data layout mismatch; skipping past node boundary when exiting array.
Sirenix.Serialization.DebugContext.LogError (System.String message) (at F:/Sirenix/Sirenix Solution/Sirenix.Serialization/Misc/SerializationConfig.cs:188)
Sirenix.Serialization.SerializationNodeDataReader.ExitArray () (at F:/Sirenix/Sirenix Solution/Sirenix.Serialization/DataReaderWriters/SerializationNodes/SerializationNodeDataReader.cs:245)
Sirenix.Serialization.ListFormatter`1[Mechanicus.Dungeon.Data.Buffs.Buff].DeserializeImplementation (System.Collections.Generic.List`1& value, IDataReader reader) (at F:/Sirenix/Sirenix Solution/Sirenix.Serialization/Formatters/ListFormatter.cs:88)
Sirenix.Serialization.BaseFormatter`1[System.Collections.Generic.List`1[Mechanicus.Dungeon.Data.Buffs.Buff]].Deserialize (IDataReader reader) (at F:/Sirenix/Sirenix Solution/Sirenix.Serialization/Formatters/BaseFormatter.cs:172)
Rethrow as SerializationAbortException: Deserialization of type 'Mechanicus.Dungeon.Data.Skills.Skill' aborted.
Sirenix.Serialization.UnitySerializationUtility.DeserializeUnityObject (UnityEngine.Object unityObject, IDataReader reader) (at F:/Sirenix/Sirenix Solution/Sirenix.Serialization/Utilities/UnitySerializationUtility.cs:1453)
Sirenix.Serialization.UnitySerializationUtility.DeserializeUnityObject (UnityEngine.Object unityObject, Sirenix.Serialization.SerializationData& data, Sirenix.Serialization.DeserializationContext context, Boolean isPrefabData, System.Collections.Generic.List`1 prefabInstanceUnityObjects) (at F:/Sirenix/Sirenix Solution/Sirenix.Serialization/Utilities/UnitySerializationUtility.cs:1234)
Sirenix.Serialization.UnitySerializationUtility.DeserializeUnityObject (UnityEngine.Object unityObject, Sirenix.Serialization.SerializationData& data, Sirenix.Serialization.DeserializationContext context) (at F:/Sirenix/Sirenix Solution/Sirenix.Serialization/Utilities/UnitySerializationUtility.cs:994)
Sirenix.OdinInspector.SerializedScriptableObject.UnityEngine.ISerializationCallbackReceiver.OnAfterDeserialize () (at F:/Sirenix/Sirenix Solution/Sirenix.Serialization/Unity Integration/SerializedScriptableObject.cs:24)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr

What version of Unity are you using?

Unity 2017.1.0p3

What version of Odin are you using? (See "Tools > Odin Inspector > About")

Odin Inspector 1.0.6.9

Do you have Editor Only mode enabled?

No

What operating system are you on?

Windows 10 64bits

Thanks!

Comments (1)

  1. Log in to comment