Jump to content
Unity Insider Forum

Gameobject Liste erstellen, bearbeiten und auslesen


frkx316

Recommended Posts

Guten Tag,

Ich schreibe zur Zeit ein Editorscript.

Dieses soll über einen Button ein Gameobject in eine Liste einfügen, ein von mir erstelltes Mesh anlegen und auf dem Bildschrim angezeigt werden.

public class MeshEditor : EditorWindow
{
    GameObject myPrefab;
    public Mesh mes1;
    int krei = 2;
    int ring = 3;
    List<GameObject> branchs = new List<GameObject>();
    List<Mesh> mes = new List<Mesh>();



    ObjectScript scrix = new ObjectScript();

    [MenuItem("Window/MeshEditor")]
    public static void Showwindow()
    {
        GetWindow<MeshEditor>("MeshEditor");
    }

    private void Awake()
    {
        

        
        myPrefab = new GameObject("myPrefab");
        myPrefab.AddComponent<MeshRenderer>();
        myPrefab.AddComponent<MeshFilter>();
        myPrefab.AddComponent<Renderer>();
        Renderer Rend = myPrefab.GetComponent<Renderer>();
        Rend.material = new Material(Shader.Find("Specular"));
        Rend.material.color = Color.green;
        

       
    }

    private void OnGUI()
    {

        krei = EditorGUILayout.IntField("Kreispunkte", krei);
        if (krei < 3)
        {
            krei = 3;
        }

        ring = EditorGUILayout.IntField("Ringanzahl", ring);
        if (ring < 2)
        {
                ring = 2;
            }
       
        if (GUILayout.Button("Add"))
        {
            branchs.Add(myPrefab);
            mes.Add(mes1);

            mes[branchs.Count - 1] = branchs[branchs.Count-1].GetComponent<MeshFilter>().mesh;
            
            mes[branchs.Count - 1].Clear();
            mes[branchs.Count - 1].vertices = MeshGen.Creatvertices(ring,krei);
            mes[branchs.Count - 1].triangles = MeshGen.Createtriangles(ring, krei);
            mes[branchs.Count - 1].RecalculateNormals();

            Instantiate(branchs[branchs.Count - 1]);
            
	}
}

Folgendes funktioniert: pro "Add" bekomme ich ein gameobject mit einem richtig produzierten Mesh

Folgendes funktioniert nicht: bei jedem neu produzierten Object verändern sich alle Meshes der älteren Objecte so dass alle gleich aussehen

Mein ziel ist es Verschiedene Meshes zu produzieren und sie am Ende via Mesh.CombineMeshes zu einem zu vereinen

 

Vielen Dank im Vorraus 🙂

image.thumb.png.74eb3556648a112c68b240da72414b3f.png

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hat sich erledigt, ich habe es gelöst 

 

public class MeshEditor : EditorWindow
{
    
    int krei = 2;
    int ring = 3;
    List<GameObject> branchs = new List<GameObject>();
    List<Mesh> mes = new List<Mesh>();



    ObjectScript scrix = new ObjectScript();

    [MenuItem("Window/MeshEditor")]
    public static void Showwindow()
    {
        GetWindow<MeshEditor>("MeshEditor");
    }

    

    private void OnGUI()
    {

        krei = EditorGUILayout.IntField("Kreispunkte", krei);
        if (krei < 3)
        {
            krei = 3;
        }

        ring = EditorGUILayout.IntField("Ringanzahl", ring);
        if (ring < 2)
        {
                ring = 2;
            }
       
        if (GUILayout.Button("Add"))
        {
            branchs.Add(new GameObject());

           
            branchs[branchs.Count-1].AddComponent<MeshRenderer>();
            branchs[branchs.Count-1].AddComponent<MeshFilter>();
            branchs[branchs.Count-1].AddComponent<Renderer>();
            Renderer Rend = branchs[branchs.Count - 1].GetComponent<Renderer>();
            Rend.material = new Material(Shader.Find("Specular"));
            Rend.material.color = Color.green;


            mes.Add(new Mesh());

            mes[branchs.Count - 1] = branchs[branchs.Count-1].GetComponent<MeshFilter>().mesh;
            
            mes[branchs.Count - 1].Clear();
            mes[branchs.Count - 1].vertices = MeshGen.Creatvertices(ring,krei);
            mes[branchs.Count - 1].triangles = MeshGen.Createtriangles(ring, krei);
            mes[branchs.Count - 1].RecalculateNormals();

            
        }

    }
}
      

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

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

×
×
  • Neu erstellen...