Fix Tag deserialization in cooked game

#1534
This commit is contained in:
Wojtek Figat
2023-10-01 21:02:08 +02:00
parent 6d92d0b58f
commit b492c9421b
2 changed files with 29 additions and 0 deletions

View File

@@ -351,6 +351,34 @@ namespace FlaxEngine.Json
}
}
/// <summary>
/// Serialize <see cref="Tag"/> as inlined text.
/// </summary>
/// <seealso cref="Newtonsoft.Json.JsonConverter" />
internal class TagConverter : JsonConverter
{
/// <inheritdoc />
public override void WriteJson(JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer)
{
var tag = (Tag)value;
writer.WriteValue(tag.ToString());
}
/// <inheritdoc />
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, Newtonsoft.Json.JsonSerializer serializer)
{
if (reader.TokenType == JsonToken.String)
return Tags.Get((string)reader.Value);
return Tag.Default;
}
/// <inheritdoc />
public override bool CanConvert(Type objectType)
{
return objectType == typeof(Tag);
}
}
/*
/// <summary>
/// Serialize Guid values using `N` format

View File

@@ -127,6 +127,7 @@ namespace FlaxEngine.Json
settings.Converters.Add(new MarginConverter());
settings.Converters.Add(new VersionConverter());
settings.Converters.Add(new LocalizedStringConverter());
settings.Converters.Add(new TagConverter());
//settings.Converters.Add(new GuidConverter());
return settings;
}