Unity: Warum werden Variablen vom Skript im Inspektor nicht automatisch aktualisiert?
Hallo,
ich habe folgendes Problem mit Unity 2019.4.1f1:
Wenn ich ein neues Skript mit einer Variable erstelle, z.B.:
Public int Test = 10;
und das Skript einem Objekt zuweise, wird der Wert korrekt im Inspektor angezeigt.
Wenn ich die Variable allerdings im Skript mit Visual Studio ändere, ändert sich der Wert im Inspektor nicht. Nur, wenn ich das Skript mit Reset zurücksetze.
Es hat vorher meiner Meinung nach immer funktioniert und plötzlich geht es nicht mehr.
Ich könnte meine Skripte zur Not immer zurücksetzen, aber an den Skripten hängen viele Objekte, die ich alle per Hand immer hinzufügen müsste. Das war vorher nicht so und macht das Arbeiten mit Unity sehr mühsam.
Habe ich irgendwelche Einstellungen geändert oder ist es ein Bug von Unity?
Ich habe schon Folgendes probiert:
- Visual Studio neuinstalliert
- Unity Einstellungen / Externe Tools den Haken auf “auto refresh“
Mir bleibt ohne Rat nur eine Neuinstallation von Unity, was lange dauert und fraglich wäre.
Hat jemand eine Lösung?
Vielen Dank im Voraus!
3 Antworten
Ok danke für deine Antwort...
Allerdings bei folgenden Code habe ich das gleiche Problem...
[Serializefield] private int Test = 10;
Gibt es eine andere Möglichkeit ohne “Reset“?
Vielen dank im voraus!
Im Debug Modus ändern sich die Variabeln nach änderung im Script auch nicht...
Weil es verwirrend und sehr umständlich ist jedes mal das Script auf Reset zustellen und alle zb. Objekte wieder neu hinzuzufügen zu müssen.
Im Debug Modus ändern sich die Variabeln nach änderung im Script auch nicht...
Weil es verwirrend und sehr umständlich ist jedes mal das Script auf Reset zustellen und alle zb. Objekte wieder neu hinzuzufügen zu müssen.
Anstelle immer neue Antworten zu erstellen, solltest du kommentieren drücken.
Das hat noch nie funktioniert. Public Variablen werden nicht im Inspector verändert, wenn du diese im Code änderst.
Wenn du Variablen nur im Code ändern willst, dann nutze private anstatt public.
Alternativ, musst im Code zu private wechseln, das ganze kompilieren lasse, und dann wieder auf public stellen. Allerdings erschließt sich mir der Grund dafür nicht.
Was genau willst du damit erreichen? Wenn du Variablen eh per Code änderst, reicht doch der Debug Mode?!? https://docs.unity3d.com/Manual/InspectorOptions.html