Unity3D: Wie kann ich: "Für das nicht statische Feld, die Methode oder die Eigenschaft "Component.gameObject" ist ein Objektverweis erforderlich" beheben?

2 Antworten

Du verwechselst Klassennamen mit Parameternamen. Du meinst vermutlich:

    if (other.gameObject.tag == "coin")
    {
      print("Grabbing Coin...");
      Destroy(other.gameObject);
    }

Jedes Objekt in C# hat einen Typ (ignorieren wir anonyme Typen mal). Der Parameter deiner Methode OnTriggerEnter hat genau einen Parameter, nämlich einen Wert vom Typ Collider namens other. Wenn du mit dem übergebenen Wert interagieren möchtest, musst du den Namen nehmen, nicht den Typ. Deswegen auch die Fehlermeldung.

Anstatt "collideer.gameobject..." "other.gameobject..." aufrufen?

Collider ist ne Klasse. Aber du brauchst ja das Objekt. Welches du ja als Parameter der Methode reingereichst bekommt.

Hier Mal ein gleichniss für deinen Code.

Autos haben ne Farbe.

Was du nun fragst ist: welche Farbe hat Auto.

Die Frage kann man natürlich nicht beantworten weil wir nicht wissen welches spezielle Auto wir uns anschauen.

In deinem Code ist es nicht anders.