Игровой объект Unity уничтожен и возвращает «null», но все равно возвращает «obj == null» как falseC#

Место общения программистов C#
Ответить
Anonymous
 Игровой объект Unity уничтожен и возвращает «null», но все равно возвращает «obj == null» как false

Сообщение Anonymous »

У меня есть класс для списков UniqueListWithActions с методом конструктора

Код: Выделить всё

    public UniqueListWithActions(List _list)
{
list = _list;
}
список объявлен как

Код: Выделить всё

    public List list;
но в методе ClearNulls отладка возвращает «null и False».

Код: Выделить всё

public void ClearNulls()
{
for (int i = list.Count - 1; i >= 0; i--)
{
Debug.Log(list[i] + " and " + (list[i] == null));
if (list[i] == null)
{
list.RemoveAt(i);
}
}
}
Я установил следующее, поместил его в пустой игровой объект, поместил два других пустых игровых объекта в список через инспектор, уничтожил один, так что ссылка отсутствовала, а затем нажал escape, и он все равно выдает «null и False».

Код: Выделить всё

public class ListTest : MonoBehaviour
{
public UniqueListWithActions uniqueList = new UniqueListWithActions(new List());
private void Update()
{
if (Input.GetKeyDown(KeyCode.Escape))
{
uniqueList.ClearNulls();
}
}
}
Я не понимаю, как это может быть настолько нулевым, что «нулевой» — это то, что возвращается в отладке, но не настолько «нулевым», чтобы list != null. Это не тот же кадр, в котором объект уничтожается, поскольку я делаю это вручную. Как я могу очистить все нулевые объекты в списке, если значение null не равно нулю?

Подробнее здесь: https://stackoverflow.com/questions/798 ... bj-null-as
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»