Jump to content
Unity Insider Forum

GetInstanceID


Kojote

Recommended Posts

Hallo!

Ich habe ein kleines Problem mit GetInstanceID.

Ich habe auf meiner Map mehrere Tiere. Wenn ich speichere, speichere ich für jedes Tier seine GetInstanceID ab und über einen Boolean, ob dieses Tier lebendig ist oder tot. Beim Laden möchte ich nun vergleichen zwischen meinen gespeicherten Daten und den Tieren in der Scene. Ich lasse also zwei Schleifen laufen und vergleiche nach einer gefunden und einer gespeicherten GetInstanceID. Sind sie gleich, wird ausgewertet, ob das Tier nun lebendig ist oder tod, um es zu deaktivieren.

Scripttechnisch sieht das so aus:

GameObject[] gameObjectEnemys = GameObject.FindGameObjectsWithTag("Enemy");

            for (int i = 0; i < gameObjectEnemys.Length; i++) {
                for (int j; i < LD_SP_Save_Data_Object_Manager.Instance.gameObjectEnemysList.Count; i++) {
                    if (gameObjectEnemys[i].GetInstanceID == LD_SP_Save_Data_Object_Manager.Instance.gameObjectEnemys[j].id) {

                    }
                }
            }

Die ID bekommt jedes Tier in der Startmethode, nun habe ich einen Fehler in Visual Studio den ich nicht ganz nachvollziehen kann:

Der ==-Operator kann nicht auf Operanden vom Typ "Methodengruppe" und "int" angewendet werden.

Könnt ihr mir hier weiter helfen bzw. habt ihr für die ID ne bessere Idee?

Grüße von Kojote

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wenn du irgendwo was von "Methodengruppe" stehen hast, dann heißt das in 98% der Fälle, dass du eine Methode hingeschrieben hast, aber nicht aufrufst.

Statt

GetInstanceID

einfach

GetInstanceID()

 

vor 3 Minuten schrieb Kojote:

bzw. habt ihr für die ID ne bessere Idee?

Ja, GetInstanceID ist für so ungefähr alles, was man als Benutzer so machen kann, völlig nutzlos. Wenn du die Szene neu lädst, kriegen alle Objekte eine neue Instance ID - sie ist nicht persistent. Wenn du Dinge in Savegames identifizieren willst, musst du dich selber um eine ID kümmern.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ja, GetInstanceID ist für so ungefähr alles, was man als Benutzer so machen kann, völlig nutzlos. Wenn du die Szene neu lädst, kriegen alle Objekte eine neue Instance ID - sie ist nicht persistent. Wenn du Dinge in Savegames identifizieren willst, musst du dich selber um eine ID kümmern. 

Na klasse! xD

Dann ist GetInstanceID ja mal total nützlich für ... ja eigentlich nicht .... 😪

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

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

×
×
  • Neu erstellen...