Програмное создание GameObject

Программирование на Юнити.

Програмное создание GameObject

Сообщение Tolking 03 фев 2010, 16:47

Создаю ировой объект.

GameObject go = new GameObject();
go.AddComponent("MeshFilter");
go.GetComponent<MeshFilter>().mesh = mesh;

как добавить renderer? go.AddComponent("Renderer") - пишет что абстрактный класс нельзя добавить
Ковчег построил любитель, профессионалы построили Титаник.
Аватара пользователя
Tolking
Адепт
 
Сообщения: 2718
Зарегистрирован: 08 июн 2009, 18:22
Откуда: Тула

Re: Програмное создание GameObject

Сообщение Zaicheg 03 фев 2010, 16:50

go.AddComponent("MeshRenderer");
Дьяченко Роман
e-mail: _zaicheg.reg@gmail.com
skype: zaicheg12
vkontakte: _vk.com/zaichegq
Работа: _wie3.com _www.sanviz.com
Аватара пользователя
Zaicheg
Адепт
 
Сообщения: 3024
Зарегистрирован: 19 июн 2009, 15:12
Откуда: Череповец

Re: Програмное создание GameObject

Сообщение Tolking 03 фев 2010, 17:01

У! Шайтан! Спасибо!
Ковчег построил любитель, профессионалы построили Титаник.
Аватара пользователя
Tolking
Адепт
 
Сообщения: 2718
Зарегистрирован: 08 июн 2009, 18:22
Откуда: Тула

Re: Програмное создание GameObject

Сообщение Tolking 03 фев 2010, 17:19

Не... Все равно не врубаюсь!
visObj - в классе приват

visObj = new GameObject();
visObj.AddComponent("MeshFilter");
visObj.AddComponent("MeshRenderer");


Код: Выделить всё
  public void AddCell(Vector3 vec, Material mat,int sz)
    {
        Mesh mesh = visObj.GetComponent<MeshFilter>().mesh;

        Vector3[] vert = new Vector3[4];
        Vector2[] uv = new Vector2[4];
        int[] tris = new int[6];

        vert[0] = new Vector3(vec.x, vec.y+1, vec.z);
        vert[1] = new Vector3(vec.x, vec.y+1, vec.z+ sz);
        vert[2] = new Vector3(vec.x+sz, vec.y+1, vec.z+sz);
        vert[3] = new Vector3(vec.x+sz, vec.y+1, vec.z);

        uv[0] = new Vector2(0, 0);
        uv[1] = new Vector2(0, 1);
        uv[2] = new Vector2(1, 1);
        uv[3] = new Vector2(1, 0);

        tris[0] = 0;
        tris[1] = 1;
        tris[2] = 2;
        tris[3] = 0;
        tris[4] = 2;
        tris[5] = 3;

        Mesh mmesh = new Mesh();
        mmesh.vertices = vert;
        mmesh.uv = uv;
        mmesh.triangles = tris;
        mmesh.RecalculateNormals();

        //GameObject go = new GameObject(string.Format("cell {0},{1},{2}",vec.x,vec.y,vec.z));
        //go.AddComponent("MeshFilter");
        //go.GetComponent<MeshFilter>().mesh = mesh;
        //go.AddComponent("MeshRenderer");


       
        CombineInstance[] comb = new CombineInstance[1];
        comb[0].mesh = mmesh;
        comb[0].transform = visObj.transform.localToWorldMatrix;

        mesh.CombineMeshes(comb);
      }


Вобщем если создаю на каждую ячейку свой объект все как бы работает. Пытаюсь в visObj все запихать не видно нифига.
Ковчег построил любитель, профессионалы построили Титаник.
Аватара пользователя
Tolking
Адепт
 
Сообщения: 2718
Зарегистрирован: 08 июн 2009, 18:22
Откуда: Тула


Вернуться в Скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2