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

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

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

Сообщение Acerolaorion 01 янв 2020, 12:41

Как скопировать все компоненты из префаба в новый объект?(нужно для того чтобы спавнить противников и потом работать с каждым из них отдельно без 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 - префаб )
Acerolaorion
UNец
 
Сообщения: 2
Зарегистрирован: 01 янв 2020, 12:27

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

Сообщение 1max1 01 янв 2020, 13:01

Синтаксис:
Используется csharp
        Component[] objComponents = obj.GetComponents(typeof(Component));
        GameObject go = new GameObject("a");
        foreach (var i in objComponents)
            go.AddComponent(typeof(i));
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

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

Сообщение Acerolaorion 01 янв 2020, 13:34

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

Ошибка: 'i" является переменная, но используется как тип.
Acerolaorion
UNец
 
Сообщения: 2
Зарегистрирован: 01 янв 2020, 12:27

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

Сообщение 1max1 01 янв 2020, 14:56

А, ну да...
go.AddComponent(i.GetType());
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51


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

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

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