Jump to content
Unity Insider Forum

OnValidate Problem


Kojote

Recommended Posts

Grüße!

Ich möchte über die Methode "OnValidate" ein anderes GameObject finden. Dies funktioniert an sich sehr gut. Problem ist nur, wenn ich das GameObject in dem sich die OnValidate Methode befindet zu einem Prefab mache, versucht das Script im Prefab auch das GameObject zu finden, findet es jedoch nicht und verursacht eine rote Fehlermeldung. Kann man OnValidate an eine Bedingung knüpfen, dass es als Prefab nicht arbeitet?

Grüße von Kojote

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich kann dir gern ma nen Projekt rüber schieben. Im Grunde ist es ein Minimap-Asset. Ich füge ein Script einem Objekt hinzu und dieses soll beim Start sich Daten vom Hauptscript holen, in dem alle Infos zu den Sprites hinterlegt sind.. Das alles funktioniert über den Editor. Problem ist, Über OnValidate soll er sich diese Infos beziehen. Dies funktioniert aber nicht, wenn ich es als Prefab ablege.

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 16 Stunden schrieb Kojote:

Über OnValidate soll er sich diese Infos beziehen

Ja, da ist direkt schon einmal der Fehler. OnValidate ist dafür nicht gemacht und deshalb funktioniert auch nicht viel damit.

Warum willst du jetzt im Editor automatisiert Daten von A nach B schieben? Entweder, die Daten stehen schon im Editor fest, dann ziehst du die einmalig mit der Hand da rein, lässt das serialisieren und fertig, oder eben nicht, dann machst du das in Awake oder Start zur Laufzeit, je nach dem.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Es ist, wie der Name schon sagt, zum Validieren von Werten, die im Inspector eingegeben wurden. Wenn dein Zahlenwert z.B. zwischen 10 und 20 sein muss, dann kannst du das in dieser Methode sicherstellen. Für diesen Fall gibt es natürlich auch das [Range]-Attribut, aber nur so als Beispiel. Es ist nicht dafür vorgesehen, etwas komplexeres zu machen als "Wenn Wert nicht innerhalb der Parameter, ändere Wert sodass innerhalb der Parameter".

Link zu diesem Kommentar
Auf anderen Seiten teilen

Schreib doch bitte mal, was du machen willst - warum muss ich dir denn alles aus der Nase ziehen?

Du wählst einen Enum-Wert aus, und dann was? Du möchtest, dass sich etwas ändert, nehme ich an. Was soll sich den ändern?

Und warum soll das im Editor geschehen? Wenn du einen Enum-Wert hast und ein anderer Wert ist von diesem Wert abhängig, warum willst du die Information dann doppelt speichern?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

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

×
×
  • Neu erstellen...