#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 перед его уничтожением, компилятор не будет пытаться уничтожить ваш объект после того, как он уже уничтожен.