Auf variable aus anderer Klasse zugreifen C#?
Ich habe zwei Klassen und möchte auf die variable superJumpsRemaining zugreifen. Das funktioniert auch, zumindest am Anfang. Wenn sich die Variable allerdings ändert (also der spieler nun einen superjump frei hat) wird dies nicht in die andere Klasse übernommen sondern wenn ich Debug.Log(playerklasse.superJumpsRemaining); in der Klasse die auf die variable zugreifen soll schreibe, ist immernoch der Wert 0 obwohl eigentlich 1 stehen sollte. Ich bin ein Anfänger es tut mir leid
Erste Klasse in der die variable erstellt wird:
Zweite Klasse in der auf die Variable zugegriffen werden soll:
2 Antworten
Du erstellst am Anfang der Update-Methode (also bei jedem draw call) eine neue Player-Instanz. Dessen superJumpsRemaining-Feld wird dann natürlich auch mit 0 initialisiert und selbst wenn sich der Wert des Feldes im weiteren Verlauf ändert - beim nächsten draw call arbeitest du wieder mit einem neuen Objekt.
Die Player-Instanz sollte ein Feld deiner Ampel-Klasse sein und nur einmal (z.B. in Start) definiert werden.
Das Problem was du hast ist das, was ich immer wieder den Leuten sage. Lern programmieren, bevor du irgendwas mit Frameworks und co machen willst. Es bringt ja nichts direkt große Projekte zu starten, wenn man gar nichts versteht. Starte irgendeinen C# Kurs auf YouTube oder so. Arbeite ein bisschen mit Hello World, so wie man nun mal anfängt und dann wenn du das durchhast, heißt es üben üben üben um besser zu werden und am Ende wirst du auch automatisch Unity können. Mach die Kurse, nur so lernst du es. Du hast keine Ahnung aber hast schon ein großes Projekt gestartet, das ist ein Fehler