Unity CS0120: An object reference is required for the non-static field, method, or property 'Variable'?

1 Antwort

Die Methode hi ist objektgebunden. Du versuchst dennoch, sie über die Klasse aufzurufen.

Insofern gibt es zwei Lösungsoptionen. Entweder machst du aus hi eine statische Methode

public static void hi()
{
  /* ... */
}

oder du kreierst eine Instanz von MainClass, um sie aufrufen zu können. Wobei man hier überlegen sollte, ob das Objekt bei jedem Aufruf von Update erstellt werden muss, oder ob nicht ein Objekt ausreicht.

private MainClass mainClassObject = new MainClass();

void Update()
{
  Debug.Log(mainClassObject.hi());
}

Generell empfiehlt es sich, sich erst mit C#-Grundlagen sowie OOP auseinanderzusetzen, bevor man mit Unity beginnt, Spiele zu entwickeln.


Bohne47 
Beitragsersteller
 18.07.2024, 11:45

Danke, dachte ich kriege das so hin mit nur einem Unity Tutorial. Aber sich noch ein C# Tutorial anzugucken ist ne gute Idee