MonoBehaviour
Базовый класс почти каждого скрипта в Unity — то, что превращает класс C# в компонент игрового объекта.
Название происходит от Mono — открытой среды выполнения .NET, на которой Unity построила поддержку C#; британское написание — от датских корней компании. Создавать его через new нельзя. Его добавляют к GameObject, и движок сам вызывает Awake, Start, Update, FixedUpdate и LateUpdate в строго заданном порядке на каждом проходе игрового цикла.
Эти методы не виртуальные. Unity находит их по имени при загрузке скрипта, так что опечатка Updat спокойно компилируется и молча ничего не делает. Класс также владеет StartCoroutine, который научил целое поколение игровых программистов писать логику ожидания через yield задолго до того, как async стал привычным. Тысячи объектов с собственным Update обходятся дорого — отчасти ради этого и появилась DOTS.