Страница 1 из 1
Как удалить все объекты из списка, в скрипте для Editor
Добавлено:
17 авг 2016, 23:01
Andrean4ik
В скрипте для эдитора есть список объектов, по которому надо пройтись и удалить все объекты. Destroy() не подходит, юнити требует применять DestroyImmediate(), но вот беда он в цикле не работает... так как же можно удалить все объекты из списка?
Re: Как удалить все объекты из списка, в скрипте для Editor
Добавлено:
17 авг 2016, 23:12
samana
Andrean4ik писал(а):юнити требует применять DestroyImmediate(), но вот беда он в цикле не работает
Не может быть, покажите-ка код.
Re: Как удалить все объекты из списка, в скрипте для Editor
Добавлено:
17 авг 2016, 23:17
Andrean4ik
Решил проблему так, инстанцирую жертвенный объект, помещаю объекты подлежащие удалению в него, и удаляю при помощи destroyImmediate();
Работает, но костыль. Как это по нормальному можно сделать?
Re: Как удалить все объекты из списка, в скрипте для Editor
Добавлено:
17 авг 2016, 23:20
Andrean4ik
samana писал(а):Andrean4ik писал(а):юнити требует применять DestroyImmediate(), но вот беда он в цикле не работает
Не может быть, покажите-ка код.
Используется csharp
if (GUILayout.Button("Clear"))
{
for (int i = 0; i < spotsList.Count; i++)
{
DestroyImmediate(spotsList[i]);
}
}
В итоге удаляется только первый объект.
Re: Как удалить все объекты из списка, в скрипте для Editor
Добавлено:
17 авг 2016, 23:33
samana
Очень странно, проверил у себя, всё работает нормально.
Re: Как удалить все объекты из списка, в скрипте для Editor
Добавлено:
17 авг 2016, 23:42
Andrean4ik
samana писал(а):Очень странно, проверил у себя, всё работает нормально.
Забавно, впрочем костыль уверенно работает так что время тратить не буду. Спасибо за содействие =)
Re: Как удалить все объекты из списка, в скрипте для Editor
Добавлено:
26 авг 2016, 02:45
llka
Andrean4ik писал(а):samana писал(а):Andrean4ik писал(а):юнити требует применять DestroyImmediate(), но вот беда он в цикле не работает
Не может быть, покажите-ка код.
Используется csharp
if (GUILayout.Button("Clear"))
{
for (int i = 0; i < spotsList.Count; i++)
{
DestroyImmediate(spotsList[i]);
}
}
В итоге удаляется только первый объект.
попробуйте после удаления делать Repaint самой сцены