Не может уничтожить преобразование «». если вы хотите уничтожить игровой объект, пожалуйста, вместо этого вызовите уничтожить игровой объект

1

У меня был быстрый вопрос.

У меня есть список объектов, к которым регулярно обращается другой скрипт. То, что я хочу сделать, - это очистить список и уничтожить все объекты в нем. Вот код, который я использую для этого:

FoodTargets - это имя моего списка...

    destroycounter = FoodTargets.Count;

    for (destroycounter = 0; destroycounter < FoodTargets.Count; destroycounter++)
    {
        Destroy(FoodTargets[destroycounter]);
        FoodTargets.RemoveAt(destroycounter);
    }

Это возвращает ошибку:

Невозможно уничтожить трансформацию "". если вы хотите уничтожить игровой объект, то вместо этого вызовите destroy на игровой объект...

Я занимаюсь этим часами, я просто хочу знать, какую строку кода я могу использовать для уничтожения встроенного сборника внутри списка... ИЛИ, если это возможно, какой код я использую для уничтожения всех экземпляров, созданных в списке. Заранее спасибо, ваша помощь будет высоко оценена.

Теги:
unity3d
gameobject
destroy

1 ответ

4
Лучший ответ

Используйте тот факт, что каждое преобразование указывает на его GameObject. Вы должны это сделать, потому что Destroy() принимает параметр GameObject в качестве параметра.

Destroy(transformReference.gameObject);

В вашем коде это будет выглядеть так:

Destroy(FoodTargets[destroycounter].gameObject);

Здесь вы можете узнать больше о свойствах внутри Transform.

  • 0
    Спасибо, это сработало очень хорошо.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню