Jump to content
Unity Insider Forum

Depth Limit überschritten


Life Is Good

Recommended Posts

Hey, ich bekomme hier 'ne komische Fehlermeldung:

Serialization depth limit exceeded at 'AIType'. There may be an object composition cycle in one or more of your serialized classes.

 

Das wichtige erstmal: Soweit ich nichts übersehen habe läuft alles wunderbar, ohne Probleme.

 

Ich hab die Meldung mal gegooglet und bin auf nen Thread gestoßen, da heißt es der Fehler kann entstehen, wenn eine Klasse mit Serializable markiert ist und private Member enthält, die nicht mit NonSerialized markiert sind.

 

Sowas hatte ich auch drin, hab ich dann nachträglich ergänzt, aber die Meldung taucht weiter auf.

 

Ich hab dann mal einfach über mein statisches Feld noch NonSerialized gesetzt, dachte mir vielleicht liegt da der selbe Fehler wie bei den privaten, das scheints aber auch nicht gewesen zu sein.

 

Meine kleine AIType Klasse ist ziemlich überschaubar ->

[system.Serializable]
public class AIType
{
[system.NonSerialized]
public static List<AIType> types = new List<AIType>();

public string typeName = "New AI Type";
public BiomType habitat;    // <<<--- Enum
public Condition condition; // <<<--- Serializable; Keine privaten Variablen
public int enemiesMask; // Editor use only.
public List<AIType> enemies = new List<AIType>();
}

 

Ist vielleicht schonmal jemand auf das Problem gestoßen ?

Davon abgesehen, dass das etwas unschön ist die in der Konsole zu haben (es hält sich in Grenzen, wird ca. 10 mal direkt hintereinander geloggt) muss ich da irgendeinen Datenverlust befürchten (aktuell wie gesagt nichts bemerkt)??

Link zu diesem Kommentar
Auf anderen Seiten teilen

Da hab ich gar nicht dran gedacht ! Ist es aber tatsächlich auch nicht.

also hatte ich auch gar nicht, hätte ich aber auch nicht nach gesucht :D

 

Bisschen blöd, weil ich den Thread gerade erst erstellt habe, aber ich hab herausgefunden wie die Meldung entstanden ist.

Ich hab in meiner "Haupt" Klasse ein Feld vom Typ AIType, das war public.

AIType ist in erster Linie serialisierbar, weil ich ein kleines Editor Window hab, mit dem man Typen erstellen kann, die sollen ja natürlich gespeichert werden.

 

Ich weiß ehrlich gesagt gar nicht warum aber irgendwie meckert Unity da wenn ich eine Klasse hab, die von MonoBehaviour erbt, die dann halt ein Feld vom Typ AIType hat.

 

 

Edit: Muss noch einmal nachtragen :wacko:

Das wird's wohl doch sein Djeurissen, meine enemies List enthält ja sehr wohl wieder AITypes, das geht dann ja natürlich immer weiter.... sorry und Danke !

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...