Jump to content
Unity Insider Forum

Initialisierung


Kojote

Recommended Posts

Guten Abend!

Es ist zwar eine extrem dämliche Anfängerfrage, aber... Wo initialisiert ihr eure Variablen?

Ich initialisiere einen Teil der Variablen immer außerhalb von Start und Awake und habe gerade folgendes Problem:

public int hilfe = 0;

public void Awake() {
        Debug.Log(hilfe);
}

public void Start() {
        Debug.Log(hilfe);
}

Normalerweise sollte man meinen, dass bei beiden Debugs der Wert 0 ausgegeben wird, leider kommt aber der Wert 1 heraus!

Wieso das?

Im umgekehrten Fall, weiße ich hilfe als Wert eine 1 zu, bleibt es bei einer eins...

Hat Unity neuerdings etwas gegen nullen oder mach ich was falsch? ^^"

Link zu diesem Kommentar
Auf anderen Seiten teilen

Der "public" Wert (bei einer MonoBehaviour Klasse) wird jeweils in der Instanz in der Szene gespeichert. Wenn du das 1. Mal ein Skript in die Szene ziehst, dann wird als Instanzwert diese Zuweisung genommen (hinter der public Variable). Ändert man es dann im Inspektor, dann wird wiederum dieser Wert gespeichert und genommen. Möchte man also einen bestimmten Startwert unabhängig von der Instanz im Inspektor, dann die Variable nicht public machen oder eben den Wert in der Awake()- oder Start()-Methode entsprechend noch einmal überschreiben.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...