Change attribute on None

Interesting, I thought I had already fixed this bug.

Turns out I fixed it wrong last time.. I have no idea why it worked for me though. Here is the new function:
Code:
/// <summary>
/// Set the override value as an object.
/// </summary>
/// <param name="overrideValue">The override value.</param>
/// <param name="setVariantTypeToOverride">Should the variant type be set to override?</param>
/// <param name="reevaluate">Should the attribute re-evaluate.</param>
public override void SetOverrideValueAsObject(object overrideValue,
    bool setVariantTypeToOverride = true, bool reevaluate = false)
{
    if (overrideValue == null) {
        SetOverrideValue(default, setVariantTypeToOverride, reevaluate);
        return;
    }
    if (!(overrideValue is T value)) {
        //Flag Enum values cannot be converted the same way as the rest.
        Type type = typeof(T);
        if (type.IsEnum) {
            value = (T) Enum.ToObject(type, overrideValue);
        } else {
            var changeType = Convert.ChangeType(overrideValue, typeof(T));
            if (changeType is T convertedValue) {
                value = convertedValue;
            } else{
                Debug.LogWarning($"Cannot convert object '{overrideValue}' to type '{type}'");
                return;
            }
            
        }
    }
    SetOverrideValue(value, setVariantTypeToOverride, reevaluate);
}

Thank you for bringing this to my attention
 
Top