- changed status to open
Can't serialize GradientMode
Hi,
I'm trying to serialize a class with a Gradient member and get an error about not being able to create the formatter for GradientMode.
This can be reproduced by adding the following script to a game object.
I'm using 2017.3.0f2 and Odin 1.0.6.0 on Windows 10.
using System;
using Sirenix.OdinInspector;
using Sirenix.Serialization;
using UnityEngine;
public class GradientTest : SerializedMonoBehaviour {
[NonSerialized, OdinSerialize]
public Gradient lala;
}
Here's the callstack: [Exception] ArgumentException: Cannot create formatters for a primitive type like GradientMode FormatterLocator.CreateFormatter() D:/Sirenix/Sirenix Solution/Sirenix.Serialization/Utilities/FormatterLocator.cs:279
FormatterLocator.GetFormatter() D:/Sirenix/Sirenix Solution/Sirenix.Serialization/Utilities/FormatterLocator.cs:183
ComplexTypeSerializer`1[System.Enum].WriteValue() D:/Sirenix/Sirenix Solution/Sirenix.Serialization/Serializers/ComplexTypeSerializer.cs:542
Serializer`1[System.Enum].WriteValue() D:/Sirenix/Sirenix Solution/Sirenix.Serialization/Serializers/Serializer.cs:279
GradientFormatter.Write() D:/Sirenix/Sirenix Solution/Sirenix.Serialization/Unity Integration/GradientFormatter.cs:62
Sirenix.Serialization.MinimalBaseFormatter`1[T].Serialize() D:/Sirenix/Sirenix Solution/Sirenix.Serialization/Formatters/MinimalBaseFormatter.cs:58
Sirenix.Serialization.MinimalBaseFormatter`1[T].Sirenix.Serialization.IFormatter.Serialize() D:/Sirenix/Sirenix Solution/Sirenix.Serialization/Formatters/MinimalBaseFormatter.cs:70
Sirenix.Serialization.ComplexTypeSerializer`1[UnityEngine.Gradient].WriteValue() D:/Sirenix/Sirenix Solution/Sirenix.Serialization/Serializers/ComplexTypeSerializer.cs:547
Sirenix.Serialization.Serializer`1[UnityEngine.Gradient].WriteValueWeak() D:/Sirenix/Sirenix Solution/Sirenix.Serialization/Serializers/Serializer.cs:260
UnitySerializationUtility.SerializeUnityObject() D:/Sirenix/Sirenix Solution/Sirenix.Serialization/Utilities/UnitySerializationUtility.cs:959
Debug.LogException()
CustomLogger.LogException() D:/Sirenix/Sirenix Solution/Sirenix.Serialization.Config/CustomLogger.cs:61
DebugContext.LogException() D:/Sirenix/Sirenix Solution/Sirenix.Serialization/Misc/SerializationConfig.cs:222
UnitySerializationUtility.SerializeUnityObject() D:/Sirenix/Sirenix Solution/Sirenix.Serialization/Utilities/UnitySerializationUtility.cs:963
UnitySerializationUtility.SerializeUnityObject() D:/Sirenix/Sirenix Solution/Sirenix.Serialization/Utilities/UnitySerializationUtility.cs:650
Sirenix.OdinInspector.SerializedMonoBehaviour.UnityEngine.ISerializationCallbackReceiver.OnBeforeSerialize() D:/Sirenix/Sirenix Solution/Sirenix.Serialization/Unity Integration/SerializedMonoBehaviour.cs:31
Comments (2)
-
-
- changed status to resolved
Fixed in 1.1.
- Log in to comment
Thanks for reporting it. We're looking into it.