C# / Unity Methode einer anderen Klasse aufrufen?

1 Antwort

Weil die Variable back nicht vom Typ Background ist, sondern vom Typ GameObject. Und dieser kennt die Methoden des Typs Background nicht. Du musst b deklarieren als

private Background back;

(public macht nur dann Sinn, wenn die Variable auch von anderen Klassen verwendet werden soll)

und dann einen Cast machen

back = (Background)GameObject.Find("Background");
Haenschenklein0 
Fragesteller
 19.01.2021, 15:43
private Background back;
   

  private void Start()
  {
    back = (Background)GameObject.Find("Background");
     
  }

so unterkringelt er mir aber "back = (Background)GameObject.Find("Background");"

0
Haenschenklein0 
Fragesteller
 19.01.2021, 15:45
@ohwehohach

Der Typ "UnityEngine.GameObject" kann nicht in "Background" konvertiert werden.

0
ohwehohach  19.01.2021, 15:47
@Haenschenklein0

Dafür kenne ich nun Unity zu wenig, aber Fakt ist, dass Du aus C# Sicht ein Objekt vom Typ A hast und versuchst, Methoden von Typ B aufzurufen. Das geht halt nicht. Du musst jetzt halt irgendwie aus dem allgemeinen GameObject in ein Background-Objekt konvertieren.

Versuche mal

GameObject go = GameObject.Find("Background");
back = (Background)go.GetComponent(typeof(Background));
0