Jump to content
Unity Insider Forum
Sign in to follow this  
Wattsefakk

Klasse als Array im Inspector

Recommended Posts

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?

Share this post


Link to post
Share on other sites

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;


}

 

  • Like 1

Share this post


Link to post
Share on other sites

Eine Kurzfassung der Möglichkeiten:

[System.Serializable]
public class Klassenname

sowie

[System.Serializable]
public struct Structname

erzeugen

image.png

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:

image.png

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.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...