Kojote Geschrieben 27. August 2017 Melden Share Geschrieben 27. August 2017 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 More sharing options...
Zer0Cool Geschrieben 27. August 2017 Melden Share Geschrieben 27. August 2017 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 More sharing options...
Sascha Geschrieben 29. August 2017 Melden Share Geschrieben 29. August 2017 Kannst mal testweise im Inspektor auf die Variable rechtsklicken und dann "Reset". Dann kriegt sie den Standardwert, den du nach der Deklaration gesetzt hast. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Recommended Posts
Archiviert
Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.