ShockWave2048
@ShockWave2048
imposter

Нужно ли удалять слушателей для UnityEvent?

Добрый день. Если я выполняю Destroy(/DestroyImmediate) GameObject-а, обязательно ли отписывать всех слушателей в MonoBehavoiur's от экземпляров UnityEvent? Или же движок (Unity) сам удаляет подписчиков и объект сразу помечается для сборщика мусора? Поведение с кешем не рассматривается.
  • Вопрос задан
  • 48 просмотров
Пригласить эксперта
Ответы на вопрос 1
  • BasmanovDaniil
    @BasmanovDaniil
    Геймдизайнер-телепат
    Если источник события удалили, то зачем что-то делать с подписчиками? Подписчики удалятся только если источник события является их родителем в иерархии. Если подписчики не хранят ссылку на объект, то делать ничего не нужно. С другой стороны, если вы удалили подписчика не отписавшись, то да, у источника события будет ссылка на убитый объект, и тогда будет утечка памяти. В таком случае подписчик перед смертью должен отписаться, но UnityEvent реализован таким образом, что он мёртвые подписки не вызывает, так что сами решайте, если время жизни объектов сильно разнится, то отписывайтесь.
    Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы