Wattsefakk Geschrieben 19. November 2017 Melden Share Geschrieben 19. November 2017 Moinsen, Ich habe eine Klasse [System.Serializable] public class TextToMesh : Editor { public string charstring; public GameObject Gameobject; public float Heightoffset; } diese möchte ich jetzt in einer anderen Klasse als public TextToMesh[] Test; einfügen. Nun kann ich aber leider nicht im Inspector auf die einzelnen Attribute aus der Klasse TextToMesh zugreifen. Möchte halt einfach ein Array haben wo ich im Editor die einzelnen Attribute setzen kann. Bei einem Object ist das ja kein Problem nur wenn ich die Objecte in ein Array schmeiße kann ich nur solche Objekte einfügen aber kann nicht auf die Attribute zugreifen. Habt ihr da eine Idee? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Helishcoffe Geschrieben 19. November 2017 Melden Share Geschrieben 19. November 2017 Mhh ich glaube da müsstest du dir zur not ein eigenes EditorScript für den Inspector schreiben Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Zer0Cool Geschrieben 19. November 2017 Melden Share Geschrieben 19. November 2017 Hier mal ein Beispiel:http://catlikecoding.com/unity/tutorials/editor/custom-data/ PS: Nimm bei deiner Klasse mal die Vererbung von Editor weg. Ich denke dann sollte es auch ohne Customeditorklasse gehen: [System.Serializable] public class TextToMesh { public string charstring; public GameObject Gameobject; public float Heightoffset; } Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 20. November 2017 Melden Share Geschrieben 20. November 2017 Eine Kurzfassung der Möglichkeiten: [System.Serializable] public class Klassenname sowie [System.Serializable] public struct Structname erzeugen wobei man sich immer die Frage stellen sollte, ob eine Klasse oder ein Struct sinnvoller ist. In den meisten Fällen, in denen man einfach nur eine Menge von Werten im Editor darstellen will, sind Structs wesentlich praktischer. Ansonsten gibt es noch public class Klassenname : Object wobei Object UnityEngine.Object ist und nicht System.Object. Man beachte auch, dass das Attribut nicht mehr gebraucht wird. Das erzeugt: Und das Objekt kann nur noch durch reinziehen referenziert werden. Es muss also woanders erzeugt werden, z.B. durch erben von ScriptableObject. TL;DR: Wenn das Objekt als Foldout im Editor sein soll, von nichts erben und [System.Serializable] drüber packen. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Wattsefakk Geschrieben 21. November 2017 Autor Melden Share Geschrieben 21. November 2017 Sascha perfekt danke genau so wollte ich das haben. Danke dir 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.