Як називається оновлення
Ні, Unity не використовує System.Reflection, щоб знайти магічний метод кожного разу, коли йому потрібно зателефонувати.
Натомість, при першому зверненні до MonoBehaviour заданого типу перевіряється базовий сценарій за допомогою сценарію виконання (або Mono, або IL2CPP), чи є визначені якісь магічні методи, і ця інформація кешується. Якщо MonoBehaviour має певний метод, він додається до відповідного списку, наприклад, якщо у сценарії визначено метод оновлення, він додається до списку сценаріїв, які потрібно оновлювати кожен кадр.
Під час гри Unity просто перебирає ці списки і виконує методи з неї - це дуже просто. Крім того, це не має значення, чи ваш метод оновлення є приватним чи приватним.
Що стосується причин , які робляться таким чином, я багато в чому віднесу вас (читача) до відповіді DMGregory , яка зводиться до балансу двох конкуруючих речей:
- Оптимізація продуктивності
- Простота використання нових розробників
Новий розробник просто хоче, щоб він працював, і не хоче з'ясовувати, "як я це підключую до системи подій?" але це все одно має працювати швидко з мінімальними накладними витратами.
Рішення, мабуть, найкраще, що може бути досягнуто в рамках цих двох обмежень. Або, принаймні, на той час змогла придумати найкраща команда розробників Unity. Ми може ніколи не дізнаємось.