Ошибка исключения нулевой ссылки - Unity, C # - PullRequest
0 голосов
/ 27 декабря 2011

Я получаю «NullReferenceException: ссылка на объект не установлена ​​для экземпляра объекта», я не знаю, что не так в моем коде:

У меня есть класс "EnemyInfo" как

public class EnemyInfo  {   
public GameObject enemyObject;  
}

В другом классе "Враги" я использую это так:

public class Enemies :  MonoBehaviour  {    

public static List<GameObject> gos;
public static List<EnemyInfo> gosN = new List<EnemyInfo>();

void FixedUpdate() {
gos = new List<GameObject>(GameObject.FindGameObjectsWithTag("enemy"));
gosN.Add(null)
gosN[0].enemyObject = gos[0].gameObject   //here I am getting error, dont know y :S

}
}

Ответы [ 4 ]

5 голосов
/ 27 декабря 2011

Это потому, что gos содержит только один объект null .

, поэтому вы получаете NullReferenceException.

2 голосов
/ 27 декабря 2011

Я подозреваю, что gos[0].gameObject является проблемой.

Если gos пуст для начала, введите gos.Add(null), добавьте запись null.

Затем вы получите доступ к этомузначение с gos[0] и попытаться вызвать члена на нем - так как это null, вы получаете NullReferenceException.

Не добавляйте null GameObject.

1 голос
/ 27 декабря 2011

Список пуст, у вас нет экземпляра для ссылки на открытых членов экземпляра

0 голосов
/ 27 декабря 2011

Понятно, после

gos.Add(null)

у вас есть gos[0] == null. Так что gos[0].gameObject разыменование null -референция.

...