Unity5.3で追加されたJsonUtilityを少し使ってみました。
https://docs.unity3d.com/ScriptReference/JsonUtility.html
・JsonUtility.ToJson、JsonUtility.FromJsonで変換する。
・内部でUnityのシリアライザを使っているので、自前のクラスを含めたい場合、
MonoBehaviourとScriptableObjectを継承していればそのまま変換される。
そうでないクラスや構造体には[Serializable]属性を付けないと無視される。
・DictinaryやHashtableはシリアライズされないため、これも無視される。
回避策として、Json化したいクラスでISerializationCallbackReceiverを継承し、
OnBeforeSerialize、OnAfterDeserializeでシリアライズ前、デシリアライズ後のタイミングをフックできるので、List等の別の型に置き換える。
以下、テスト用のコンポーネント。
https://docs.unity3d.com/ScriptReference/JsonUtility.html
・JsonUtility.ToJson、JsonUtility.FromJsonで変換する。
・内部でUnityのシリアライザを使っているので、自前のクラスを含めたい場合、
MonoBehaviourとScriptableObjectを継承していればそのまま変換される。
そうでないクラスや構造体には[Serializable]属性を付けないと無視される。
・DictinaryやHashtableはシリアライズされないため、これも無視される。
回避策として、Json化したいクラスでISerializationCallbackReceiverを継承し、
OnBeforeSerialize、OnAfterDeserializeでシリアライズ前、デシリアライズ後のタイミングをフックできるので、List等の別の型に置き換える。
以下、テスト用のコンポーネント。