gpt4 book ai didi

c# - Unity : Issue with serialization since version 5. 0(父/子关系)

转载 作者:行者123 更新时间:2023-11-30 17:44:47 25 4
gpt4 key购买 nike

当我使用旧版本的 Unity 时没有问题,但自升级以来,我不断收到所有包含其类型子级的类的错误:“Formation”处超出序列化深度限制。您的一个或多个序列化类中可能存在对象组合循环。

我有这样一个类:

[Serializable]
public class Formation {
public List<Formation> Formations;
}

它写了一些循环,但是为什么没有无限循环会出现问题,因为每个子实例都必须初始化,所以如果用户想做无限循环他会这样做,但只能显式初始化子实例...

这是什么错误吗?我已经在论坛上阅读了一些建议删除子项的帖子,但我不明白为什么会出现这种行为。

顺便说一句,我上次写的这个类我什至没有序列化,甚至没有创建列表实例

最佳答案

我有类似的循环序列化问题。我通过显式使父实例不可序列化来解决它。

例如

[Serializable]
class A
{
[SerializeField]
B _bInstance;
...
}
...
[Serializable]
class B
{
A _aInstance;
...
}

成为

[Serializable]
class A
{
[SerializeField]
B _bInstance;
...
}
...
[Serializable]
class B
{
[NonSerialized]
A _aInstance;
...
}

希望这会有所帮助。

关于c# - Unity : Issue with serialization since version 5. 0(父/子关系),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28999366/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com