Если поле установлено через Инспектор, должен ли я обнулять его при уничтожении
GameObject или Unity делает это автоматически?
Нет, вам не нужно устанавливать Unity Object на null
до или после его уничтожения. Объект Unity имеет перегрузку оператора ==
. Когда Объект уничтожен, Unity помечает объект как null
, но Объект на самом деле не null
. Этот механизм реализован так, что вы проверяете, является ли он null
с if(unityObject == null)
. Когда он помечен как нулевой, нет смысла снова устанавливать его в ноль.
Обратите внимание, что когда вы сказали "уничтожить", я предполагаю, что вы уничтожаете объект с помощью функции Destroy
или DestroyImmediate
. Кроме того, если вы просто отменили подписку на событие, как вы сделали в своем вопросе, вам не нужно уничтожать объект. Вам также не нужно устанавливать его на null
.