Was habe ich in diesem Code falsch gemacht?

2 Antworten

Mit der Zeile

public int health currentHealth;

stimmt etwas nicht.

Willst du da 2 int-Variablen (health und currentHealth) deklarieren? Dann würde ein Komma nach "health" gehören.

Oder es ist eines der beiden Wörter ("int" oder "health") überflüssig - je nachdem, was du genau erreichen möchtest.

Zwar eine späte Antwort, aber lieber spät als nie.
Also ich sehe hier mehrere Fehler (soll keine Anschuldigung sein, nur eine Feststellung):
Als aller erstes sehe ich, dass der Klassenname "Playerhealth" nicht mit dem Dateinamen "Player health" übereinstimmt, weshalb der Dateiname umbenennt werden sollte.

Dann zum eigentlichen Fehler der Frage: Soweit ich verstehe soll in Zeile 9 die neue Variable "health" auf die Zahl von "currentHealth" gesetzt werden. Dafür fehlt ein Gleichzeichen zwischen den beiden Namen.

public int health = currentHealth;

Dann gibt es da aber noch eine andere Kleinigkeit: currentHealth wird erst in der Start-Methode definiert, weshalb "health", welches vor der Start-Methode deklariert wird, am Anfang nicht den Wert vom später gesetzten currentHealth übernehmen kann.
Eine Lösung dafür ist es die Variable zwar zu deklarieren, aber noch nicht den Wert zu setzen. Der Wert sollt erst später in der Start-Methode gesetzt werden.

Hoffe das hilft, bei Fragen gerne melden ;)

Woher ich das weiß:Hobby – Programmierung mit Unity und C#