In dem Inspector werden bei dem Script in Unity nicht die public-Werte angezeigt! Warum?
Ich habe ein relativ einfaches Script in Unity mit MonoDevelop geschrieben und abgespeichert. Wenn ich aber in Unity die Werte in dem Script anpassen möchte, geht das nicht, da die Werte, die ich mit public definiert habe nicht angezeigt werden. Kann mir jemand helfen?
2 Antworten
Versuch mal das Skript zu entfernen und neu hinzuzufügen.
Ansonsten mach die Felder private und füge https://docs.unity3d.com/ScriptReference/SerializeField.html hinzu. Wenn du von außen auf die Felder zugreifen musst, verwende Eigenschaften, siehe https://docs.microsoft.com/de-de/dotnet/csharp/programming-guide/classes-and-structs/using-properties
Erscheint denn irgendein Fehler in Unity? (dies anzugeben wäre obligatorisch...) Wenn das Script Fehler aufweist, kann es nicht kompiliert werden und somit werden auch keine Variablen angezeigt.
target ist anfangs uninitialisiert und in Start() fragst du target.position ab, ohne zu überprüfen, ob target existiert - das wird wohl der Fehler sein.
target wird in deinem Code gar nicht initialisiert, du kannst ihm entweder im Code, oder über den Inspektor etwas zuweisen, daher musst du sicherstellen, dass, falls target null ist, der Code, über den auf target zugegriffen wird, nicht ausgeführt wird.
Wenn du Anfänger bist, dann lern erst einmal zu programmieren und lass, solange du nicht wirklich gut darin bist, die Finger weg von Unity!
Das Problem liegt aber nicht am Code. Denn wenn ich meinen Code lösche und einen Tutorial Code von der Unity Seite nehme, macht das Objekt noch genau das, was es mit meinem Code gemacht hat, wobei dieser überhaupt nicht mehr vorhanden ist. Das Script im Inspector wird ebenfalls nicht aktualisiert.
Nein es entsteht kein Fehler. target wird doch, soweit ich es verstanden habe, durch die Zuweisung eines Objects im Inspector initialisiert, oder? Ich bin noch Anfänger sorry. ':D