Мистическая ошибка #1 Почему мистическая? Потому что не понимаю, откуда она берется) Не видел такого ни у Гоши Дударя, ни в других "качественных" туториалах. Да и не видел ни на одном рабочем проекте.

Что за ошибка? Очень часто вижу в MonoBehaviour классах подписки/отписки в методах OnEnable/OnDisable. Причем происходит это в тех объектах, в которых нет логики многократного включения/выключения. Допустим, какой-нибудь сервис или, например, игрок, который существует от запуска сцены до ее уничтожения.

Почему мне это не нравится? Да потому что подает неверное представление о классе. Если у нас, например, есть компонент, у которого подписки в OnEnable/OnDisable, сразу начинаешь думать, что мы должны его показывать и прятать. И это может быть верно, например, для хп бара игрока - нет смысла показывать его на экране, если игрок не получает урон или вообще во время катсцены. И мы все к этому привыкли. Пусть это и неявный контракт, но он точно такой же неявный как вьюшка в любом MVx паттерне, у которой мы не ждем сложной логики (если вы не в Game Insight работали, конечно, там и не такое дерьмо в коде было)

Кстати, у меня есть заметка, которую я кидаю всем (когда не забываю) при написании проекта в рамках менторства. Чтобы не приходилось делать лишнюю итерацию правок. Если наберем 30 🔥, то закину ее в комментарии