Страница 1 из 1

Копирование компонентов.

СообщениеДобавлено: 01 янв 2020, 12:41
Acerolaorion
Как скопировать все компоненты из префаба в новый объект?(нужно для того чтобы спавнить противников и потом работать с каждым из них отдельно без GameObject.Find)
Синтаксис:
Используется csharp
        Component[] objComponents;
        objComponents = obj.GetComponents(typeof(GameObject));
        GameObject go = new GameObject("a");
        foreach(var i in objComponents)
        go.AddComponent(i);
 

выдает ошибку не удается преобразовать из "UnityEngine.Component" в "System.Type" (obj - префаб )

Re: Копирование компонентов.

СообщениеДобавлено: 01 янв 2020, 13:01
1max1
Синтаксис:
Используется csharp
        Component[] objComponents = obj.GetComponents(typeof(Component));
        GameObject go = new GameObject("a");
        foreach (var i in objComponents)
            go.AddComponent(typeof(i));

Re: Копирование компонентов.

СообщениеДобавлено: 01 янв 2020, 13:34
Acerolaorion
1max1 писал(а):
Синтаксис:
Используется csharp
        Component[] objComponents = obj.GetComponents(typeof(Component));
        GameObject go = new GameObject("a");
        foreach (var i in objComponents)
            go.AddComponent(typeof(i));

Ошибка: 'i" является переменная, но используется как тип.

Re: Копирование компонентов.

СообщениеДобавлено: 01 янв 2020, 14:56
1max1
А, ну да...
go.AddComponent(i.GetType());