2014-11-11 3 views
1

MissingReferenceException: объект типа Transform был уничтожен, но вы все еще пытаетесь получить к нему доступ.Единство | MissingReferenceException: объект типа Transform был уничтожен, но вы все еще пытаетесь получить к нему доступ.

Ваш скрипт должен либо проверить, является ли он нулевым, либо не уничтожить объект.

UnityEngine.Transform.get_position() (at C:/BuildAgent/work/d63dfc6385190b60/artifacts/EditorGenerated/UnityEngineTransform.cs:28) 

Destroy+$SpawnAfter5Seconds$1+$.MoveNext() (at Assets/Scripts/Destroy.js:22) 

Любая помощь?

+0

Вы разрушаете ссылку на объект, а не реализованным один. Создайте экземпляр переменной, чтобы удерживать объект и уничтожить его. – LokiSinclair

ответ

0

Вы связываетесь, чтобы выполнить операцию над объектом, который сейчас null, потому что он был Destroyed.

Решение

Не уничтожить его или не пытаются получить доступ то, что уже уничтожено. Вы всегда можете проверить, как это:

if(transformReference != null) 
{ 
    // Safe to use. 
} 
0

Это означает, что объект, который вы пытаетесь переместить, изменить положение и т. Д., Был уничтожен. Попробуйте создать новый объект, названный как объект, который вы использовали в своем скрипте. Если это не поможет, отправьте сценарий в комментарии. Отличный день!

-1
void FixedUpdate() 
{ 
    Vector3 targetCamePos = target.position + offset; 
    if (targetCamePos != null) 
    { 
     transform.position = Vector3.Lerp(transform.position, targetCamePos, smoothing * Time.deltaTime); 
     if (transform.position.y < lowY) 
     { 
      transform.position = new Vector3(transform.position.x, lowY, 
transform.position.z); 

      //if our character fallow the x/z not y 
     } 
    } 
} 
+0

Пожалуйста, помогите, потому что по какой-то причине я не могу понять, почему преобразование дает мне ошибку. – mNan

+0

. Вы должны предоставить более подробное описание ответа – timiTao

Смежные вопросы