thewhiteshadow Geschrieben 23. Mai 2018 Melden Share Geschrieben 23. Mai 2018 Hallo zusammen, ich hab ein Skript als MonoBehavour einem Objekt angehangen. Es hält eine Datenstruktur, die ich im Editor benötige und auch nur dort. Zur Laufzeit ist das Skript völlig nutzlos. Auch die Datenstruktur brauch ich da nicht mehr. Kann man das irgendwie anders organisieren damit die Daten im Editor verfügbar sind, aber beim build rauskommen? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Seyshiro Geschrieben 24. Mai 2018 Melden Share Geschrieben 24. Mai 2018 Bin mir jetzt nicht 100%ig sicher ob es das ist was du suchst, aber probier mal folgendes: #if UNITY_EDITOR // Editor-Only-Code #endif Alles was innerhalb dieser Directive steht, wird nur im Editor ausgeführt, nicht aber im fertigen Build. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
thewhiteshadow Geschrieben 24. Mai 2018 Autor Melden Share Geschrieben 24. Mai 2018 Das funktioniert für Code, aber kann ich damit auch felder ausschließen ohne das mit das ganze beim build um die Ohren fliegt? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Seyshiro Geschrieben 24. Mai 2018 Melden Share Geschrieben 24. Mai 2018 Zitat Es hält eine Datenstruktur, die ich im Editor benötige Zitat aber kann ich damit auch felder ausschließen Ich verstehe leider nicht so wirklich was du meinst. Könntest du das bitte noch etwas näher erläutern. Was für Datenstrukturen und was genau meinst du mit Felder? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
thewhiteshadow Geschrieben 25. Mai 2018 Autor Melden Share Geschrieben 25. Mai 2018 Hat sich erledigt. ich kann es doch compilieren. #if UNITY_EDITOR //(...) [HideInInspector] public GameObject[] arrayObjects; #endif Das dort ist ein Feld vom Typ GameObject[]. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 25. Mai 2018 Melden Share Geschrieben 25. Mai 2018 Wenn dein ganzes Skript nicht im Build sein soll, packe es in einen Ordner namens "Editor". Bei serialisierten Feldern musst du aufpassen, wenn du sie Editor-only haben willst. Wenn das Skript ansonsten noch im Build landet (und da auch benutzt wird), gibt es bei der Deserialisierung einen Fehler, weil das Serialisationslayout der Klasse nicht mehr mit der Version im Editor übereinstimmt, von da aber die serialisierten Szenendatan stammen. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
thewhiteshadow Geschrieben 25. Mai 2018 Autor Melden Share Geschrieben 25. Mai 2018 Danke für die Antwort, aber das mit dem Ordner Editor ist eine ganz schlechte Idee. Der Ordner ist nur für Editor-Skripte. Bei Monobehavours wirft es einen Fehler im Inspektor. Unity scheint sich allerdings nicht an den verschwundenen Feldern zu stören. Vielleicht weil ohen Zugriff nicht mal die Klasse geladen wird. So genau weiß es auch nicht. Jedenfalls gehts. Falls jemand ne bessere Lösung hat, wie man Daten im Editor für ein GameObjekt speichern kann ohne Monobehavour nehm ich es gerne an. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 25. Mai 2018 Melden Share Geschrieben 25. Mai 2018 Wenn du dein Script auf einem GameObject im Build hast, dann wirst du beim Builden einen Fehler kriegen. Wenn nicht, dann kannst du es ja auch in den Editor-Ordner packen Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
thewhiteshadow Geschrieben 25. Mai 2018 Autor Melden Share Geschrieben 25. Mai 2018 Nööp. Und er jammert nicht beim Build und im Log steht nur sowas: "Unloading 5 Unused Serialized files (Serialized files now loaded: 0)" Was auch immer das heißt.^^ Edit: Ich seh grade, dass ich nicht der einzige bin mit demProblem/Lösung: https://answers.unity.com/questions/686278/can-i-save-data-in-an-editor-class.html Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 25. Mai 2018 Melden Share Geschrieben 25. Mai 2018 Welche Unity-Version nutzt denn du? Vielleichgt haben sie das ja in 2018.x überarbeitet. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
thewhiteshadow Geschrieben 25. Mai 2018 Autor Melden Share Geschrieben 25. Mai 2018 Hb gestern wegen dem Lightmapperproblem (anderer Thread) auf 2018.1 gewechselt. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Zer0Cool Geschrieben 25. Mai 2018 Melden Share Geschrieben 25. Mai 2018 Weiß nicht genau, was du da speichern willst, ggf. könntest du es auch in einer Scriptable-Objekt-Klasse ablegen, dann sind diese Daten eben auch keine Szenendaten mehr (= SO-Asset) und SO's funktionieren im Editor in beide Richtungen (lesen / schreiben). Nach einem Build dann nur noch lesend, aber dies würde dich ja nicht stören. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 25. Mai 2018 Melden Share Geschrieben 25. Mai 2018 Im Build kann man wunderbar Werte von ScriptableObjects ändern. Sind dann halt nur nicht persistent, ist ja klar. Zu der Exception: Die tritt tatsächlich etwas zufällig auf. Konnte sie jetzt gerade weder in 2017, noch in 2018 reproduzieren. Hatte sie aber in 2017 schon... 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.