diff --git a/Source/Engine/Serialization/JsonSerializer.cs b/Source/Engine/Serialization/JsonSerializer.cs
index 24c6abb6d..0efb7433d 100644
--- a/Source/Engine/Serialization/JsonSerializer.cs
+++ b/Source/Engine/Serialization/JsonSerializer.cs
@@ -73,7 +73,7 @@ namespace FlaxEngine.Json
ContractResolver = new ExtendedDefaultContractResolver(isManagedOnly),
ReferenceLoopHandling = ReferenceLoopHandling.Ignore,
TypeNameHandling = TypeNameHandling.Auto,
- NullValueHandling = NullValueHandling.Ignore,
+ NullValueHandling = NullValueHandling.Include,
ObjectCreationHandling = ObjectCreationHandling.Auto,
};
if (ObjectConverter == null)
@@ -276,6 +276,11 @@ namespace FlaxEngine.Json
cache.IsDuringSerialization = false;
Current.Value = cache;
+ /*// Debug json string reading
+ cache.MemoryStream.Initialize(jsonBuffer, jsonLength);
+ cache.Reader.DiscardBufferedData();
+ string json = cache.Reader.ReadToEnd();*/
+
cache.MemoryStream.Initialize(jsonBuffer, jsonLength);
cache.Reader.DiscardBufferedData();
var jsonReader = new JsonTextReader(cache.Reader);
diff --git a/Source/Engine/UI/GUI/Control.cs b/Source/Engine/UI/GUI/Control.cs
index afdd86bcb..ca62f117f 100644
--- a/Source/Engine/UI/GUI/Control.cs
+++ b/Source/Engine/UI/GUI/Control.cs
@@ -877,7 +877,7 @@ namespace FlaxEngine.GUI
///
/// Gets or sets the tooltip text.
///
- [HideInEditor]
+ [HideInEditor, NoSerialize]
public string TooltipText
{
get => _tooltipText;
@@ -887,7 +887,7 @@ namespace FlaxEngine.GUI
///
/// Gets or sets the custom tooltip control linked. Use null to show default shared tooltip from the current .
///
- [HideInEditor]
+ [HideInEditor, NoSerialize]
public Tooltip CustomTooltip
{
get => _tooltip;
diff --git a/Source/Tools/FlaxEngine.Tests/TestSerialization.cs b/Source/Tools/FlaxEngine.Tests/TestSerialization.cs
index 00731c7ad..e539af803 100644
--- a/Source/Tools/FlaxEngine.Tests/TestSerialization.cs
+++ b/Source/Tools/FlaxEngine.Tests/TestSerialization.cs
@@ -47,15 +47,15 @@ namespace FlaxEngine.Tests
{
ObjectOne obj = new ObjectOne();
- Assert.AreEqual("{\n\t\"MyValue\": 0.0,\n\t\"MyVector\": {\n\t\t\"X\": 0.0,\n\t\t\"Y\": 0.0\n\t}\n}", FilterLineBreak(JsonSerializer.Serialize(obj)));
+ Assert.AreEqual("{\n\t\"MyValue\": 0.0,\n\t\"MyVector\": {\n\t\t\"X\": 0.0,\n\t\t\"Y\": 0.0\n\t},\n\t\"MyArray\": null\n}", FilterLineBreak(JsonSerializer.Serialize(obj)));
obj.MyValue = 1.2f;
- Assert.AreEqual("{\n\t\"MyValue\": 1.2,\n\t\"MyVector\": {\n\t\t\"X\": 0.0,\n\t\t\"Y\": 0.0\n\t}\n}", FilterLineBreak(JsonSerializer.Serialize(obj)));
+ Assert.AreEqual("{\n\t\"MyValue\": 1.2,\n\t\"MyVector\": {\n\t\t\"X\": 0.0,\n\t\t\"Y\": 0.0\n\t},\n\t\"MyArray\": null\n}", FilterLineBreak(JsonSerializer.Serialize(obj)));
obj.MyVector.Y = 2.0f;
- Assert.AreEqual("{\n\t\"MyValue\": 1.2,\n\t\"MyVector\": {\n\t\t\"X\": 0.0,\n\t\t\"Y\": 2.0\n\t}\n}", FilterLineBreak(JsonSerializer.Serialize(obj)));
+ Assert.AreEqual("{\n\t\"MyValue\": 1.2,\n\t\"MyVector\": {\n\t\t\"X\": 0.0,\n\t\t\"Y\": 2.0\n\t},\n\t\"MyArray\": null\n}", FilterLineBreak(JsonSerializer.Serialize(obj)));
obj.MyArray = new[]
{