gombolo Geschrieben 30. Dezember 2020 Melden Share Geschrieben 30. Dezember 2020 Hallo zusammen, ich möchte eine Liste mit einer undefinierten Anzahl an Objekten befüllen. Diese Objekte sollen nach einer definierten Zeit wieder aus der Liste entfernt werden. Ich fange wie folgt an: public class Entity { public GameObject go; public float lifeTime; } public List<Entity> listOfGameObjects = new List<Entity>(); Die Liste soll die Klasse Entity verwalten Entity entity = new Entity(); //...hier passiert dies und das...ein GameObjekt wird erstellt usw... entity.go = instance; entity.lifeTime = Time.time + lifetime; // Objekt in die Liste eintragen listOfGameObjects.Add(entity); Der Code funktioniert so nicht. Wenn ich "nur" zwei Objekte erstelle scheint es zu gehen, aber wenn ich mehr als zwei erstelle verhält sich der Prozess undefiniert. Die Objekte werden erstellt, jedoch bleiben diese an unterschiedlichen Stellen stehen und machen nichts mehr... Mir scheint es so, dass ich keinen Speicherplatz bekomme. Ich kann jedoch keinen Fehler im Code finden. Ist die Herangehensweise bei Listen, wie ich es mache, eigentlich richtig? Danke und viele Grüße GOMBOLO Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 30. Dezember 2020 Melden Share Geschrieben 30. Dezember 2020 vor 16 Minuten schrieb gombolo: Mir scheint es so, dass ich keinen Speicherplatz bekomme. Das auf keinen Fall. Programme machen nicht einfach komische Dinge, wenn sie keinen Speicherplatz mehr haben, sondern werfen entsprechende Fehler. Kannst ja im Task-Manager schauen, wie viel RAM du noch hast vor 17 Minuten schrieb gombolo: Die Objekte werden erstellt, jedoch bleiben diese an unterschiedlichen Stellen stehen und machen nichts mehr... Wenn hier noch der Bewegungscode mit reinspielt, dann ist der Fehler schonmal nicht in dem Code, den du gepostet hast. Wie sieht denn dein Code mit und um Destroy() aus? Alternativ kann ich mir vorstellen, dass dir hier die Referenzsemantik ein Bein stellt. Kann man ohne den restlichen Code, wo Entity-Objekte auftauchen, aber auch nicht wirklich sagen. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
gombolo Geschrieben 30. Dezember 2020 Autor Melden Share Geschrieben 30. Dezember 2020 Ja...lag doch nicht an der Liste ich verwende C# zum ersten mal "richtig" und war mir nicht sicher ob ich bei der Benutzung was falsch gemacht habe. Der Fehler lag an der Methode zur Objektbewegung. Wenn ein Objekt im Pool deaktiviert wird, dann sollte man auch die Werte wieder zurück stellen Sonst erhält das nächste aktivierte Objekt falsche Daten 😇 So einfach kann manchmal ein Programmiereleben sein... Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Recommended Posts
Archiviert
Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.