Как мне исправить ошибку компонента преобразования?

#c# #unity3d

#c# #unity3d

Вопрос:

Я создал код для его уничтожения при столкновении с препятствием, но проблема в том, что при столкновении с препятствием он уничтожается, но возникает одна ошибка, связанная с компонентом преобразования.

Исключение MissingReferenceException: объект типа ‘Transform’ был уничтожен, но вы все еще пытаетесь получить к нему доступ. Ваш скрипт должен либо проверить, имеет ли он значение null, либо вы не должны уничтожать объект. UnityEngine.Transform.get_position () followplayer .Обновление ()

Комментарии:

1. Покажите свой код, пожалуйста… по-видимому, вы пытаетесь получить доступ к опции, которая была уничтожена, как говорится в сообщении 😉 Итак, если вы где-то уничтожаете соответствующий объект, вы должны сделать, например if(theObject) { var position = theObject.transform.position; ... }

Ответ №1:

Не могли бы вы показать свой скрипт? Перед этим, я думаю, вам следует попробовать это:

 if (gameObject != null)
    //Destroy your object
  

Я предполагаю, что вы написали свой код в функции обновления Unity, поэтому этот код выполняется в каждом кадре. Другими словами, он пытается уничтожить ваш объект даже после его уничтожения и становится нулевым. Если вы спросите компилятор, имеет ли значение null перед его уничтожением, компилятор не будет пытаться уничтожить ваш объект после того, как он уже уничтожен.