Как удалить все объекты из списка, в скрипте для Editor

Раздел, посвящённый всему, что связано с программированием для Редактора Юнити. Скрипты Редактора, Wizards и прочее.

Как удалить все объекты из списка, в скрипте для Editor

Сообщение Andrean4ik 17 авг 2016, 23:01

В скрипте для эдитора есть список объектов, по которому надо пройтись и удалить все объекты. Destroy() не подходит, юнити требует применять DestroyImmediate(), но вот беда он в цикле не работает... так как же можно удалить все объекты из списка?
Andrean4ik
UNец
 
Сообщения: 48
Зарегистрирован: 11 июл 2012, 15:54

Re: Как удалить все объекты из списка, в скрипте для Editor

Сообщение samana 17 авг 2016, 23:12

Andrean4ik писал(а):юнити требует применять DestroyImmediate(), но вот беда он в цикле не работает

Не может быть, покажите-ка код.
Аватара пользователя
samana
Адепт
 
Сообщения: 4738
Зарегистрирован: 21 фев 2015, 13:00
Откуда: Днепропетровск

Re: Как удалить все объекты из списка, в скрипте для Editor

Сообщение Andrean4ik 17 авг 2016, 23:17

Решил проблему так, инстанцирую жертвенный объект, помещаю объекты подлежащие удалению в него, и удаляю при помощи destroyImmediate();
Работает, но костыль. Как это по нормальному можно сделать?
Andrean4ik
UNец
 
Сообщения: 48
Зарегистрирован: 11 июл 2012, 15:54

Re: Как удалить все объекты из списка, в скрипте для Editor

Сообщение Andrean4ik 17 авг 2016, 23:20

samana писал(а):
Andrean4ik писал(а):юнити требует применять DestroyImmediate(), но вот беда он в цикле не работает

Не может быть, покажите-ка код.


Синтаксис:
Используется csharp
        if (GUILayout.Button("Clear"))
        {
            for (int i = 0; i < spotsList.Count; i++)
            {
                DestroyImmediate(spotsList[i]);
            }
        }
 


В итоге удаляется только первый объект.
Andrean4ik
UNец
 
Сообщения: 48
Зарегистрирован: 11 июл 2012, 15:54

Re: Как удалить все объекты из списка, в скрипте для Editor

Сообщение samana 17 авг 2016, 23:33

Очень странно, проверил у себя, всё работает нормально.
Аватара пользователя
samana
Адепт
 
Сообщения: 4738
Зарегистрирован: 21 фев 2015, 13:00
Откуда: Днепропетровск

Re: Как удалить все объекты из списка, в скрипте для Editor

Сообщение Andrean4ik 17 авг 2016, 23:42

samana писал(а):Очень странно, проверил у себя, всё работает нормально.


Забавно, впрочем костыль уверенно работает так что время тратить не буду. Спасибо за содействие =)
Andrean4ik
UNец
 
Сообщения: 48
Зарегистрирован: 11 июл 2012, 15:54

Re: Как удалить все объекты из списка, в скрипте для Editor

Сообщение llka 26 авг 2016, 02:45

Andrean4ik писал(а):
samana писал(а):
Andrean4ik писал(а):юнити требует применять DestroyImmediate(), но вот беда он в цикле не работает

Не может быть, покажите-ка код.


Синтаксис:
Используется csharp
        if (GUILayout.Button("Clear"))
        {
            for (int i = 0; i < spotsList.Count; i++)
            {
                DestroyImmediate(spotsList[i]);
            }
        }
 


В итоге удаляется только первый объект.

попробуйте после удаления делать Repaint самой сцены
llka
UNIверсал
 
Сообщения: 359
Зарегистрирован: 08 янв 2014, 05:00


Вернуться в Editor

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

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