Jump to content
Unity Insider Forum
Sign in to follow this  
Kojote

GetInstanceID

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

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites
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 .... 😪

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...