【Unity】JsonUtility.ToJsonは破壊的変更を行うの?

環境情報

  • Unity 2017.3.1p3

問題🤔

HogeDataインスタンスをJsonUtility.ToJsonでJson吐き出しすると、 nullのはずのパラメータに初期値が入ってしまいます。

リファレンスやソースコードを確認しましたが、 破壊的変更を行うのが正しい挙動なのか、バグなのかわかりませんでした。

ただの理解不足なだけかもしれませんが ご存知の方がいらっしゃったら、教えていただきたいです。。

検証コード

# class定義
[Serializable]
public class HogeData
{
    public FugaData fugaData;
}

[Serializable]
public class FugaData
{
    public int intParameter;
}

# テストコード
var testData = new HogeData();
Debug.Log(testData.fugaData);
Debug.Log(JsonUtility.ToJson(testData));
Debug.Log(testData.fugaData);

# 結果
Null
{"fugaData":{"intParameter":0}}
FugaData

参考

Unityスクリプトリファレンス

UnityCsReference