ツリー構造のシリアライズ化


ツリー構造をシリアライズ化しようとした所、以下のようなエラーメッセージが出てしまいます。

[code]

    Serialization depth limit exceeded at 'Node'. There may be an object composition cycle in one or more of your serialized classes.
    
[/code]

内容的にはシリアライズかする際の深さ制限が無いからダメのようです。 明示的に深さ制限を設けても構わないので、この問題を回避する方法をご存じないでしょうか。

よろしくお願いします。

[code]

    [System.Serializable]
    public class Node {
        public Node[] Children;
    }
    
[/code]




下記のページの 「私はUnityのシリアライザがサポートしていないオブジェクトをシリアライズしたいです。何をすればいいですか？」
という項目に、ISerializationCallbackReceiverを実装してツリー構造をListへ平坦化してシリアライズさせるソースコードがあるので参考になるかもしれません。

<http://japan.unity3d.com/blog/?p=1630>




下記のページの 「私はUnityのシリアライザがサポートしていないオブジェクトをシリアライズしたいです。何をすればいいですか？」
という項目に、ISerializationCallbackReceiverを実装してツリー構造をListへ平坦化してシリアライズさせるソースコードがあるので参考になるかもしれません。

<http://japan.unity3d.com/blog/?p=1630>

