Как устроено любое «как сделать»
В Unity всё собирается из трёх вещей: объект в сцене (GameObject), компоненты на нём (Rigidbody, Collider, Camera) и скрипты на C#, которые управляют компонентами. Поэтому ответ на «как сделать X» почти всегда звучит так: какой объект, какие компоненты и какой скрипт.
Прежде чем искать урок, проверьте две вещи: версию Unity (в 2026 году актуальна Unity 6.3 LTS) и систему ввода — новая Input System или старый Input Manager. Код из уроков под другую систему — главная причина, почему «ничего не работает».
1. Движение персонажа
Для 3D есть два пути. CharacterController — компонент без физики: персонаж не толкается, но и не падает сам, гравитацию пишете в скрипте. Rigidbody — честная физика: объект падает, отскакивает, толкает ящики, но двигать его нужно через силы или скорость в FixedUpdate.
Для 2D берут Rigidbody2D и задают скорость по горизонтали. Скорость храните в публичном поле, чтобы подбирать её в инспекторе без правки кода.
2. Прыжок
Проверка земли
Прыгать можно только стоя на земле: под персонажем проверяют коллайдеры (Physics.CheckSphere, Raycast или OverlapCircle в 2D).
Импульс вверх
С Rigidbody — AddForce с режимом Impulse; с CharacterController — задаёте вертикальную скорость вручную.
Гравитация
Если прыжок «ватный», увеличьте гравитацию падения — так делают почти во всех платформерах.
3. Камера за игроком
Проще всего поставить пакет Cinemachine через Package Manager: он даёт камеру, которая следует за целью, плавно догоняет её и не проходит сквозь стены. Код писать не нужно — достаточно указать, за кем следить.
Самописная камера в LateUpdate тоже работает, но сглаживание, столкновения и тряску придётся делать руками.
4. Кнопка и меню
Меню собирается на Canvas: GameObject → UI → Button. В компоненте кнопки есть список On Click — туда перетаскивается объект со скриптом и выбирается метод. Если кнопка не нажимается, проверьте, есть ли в сцене объект EventSystem: без него UI не реагирует.
Пауза — это Time.timeScale = 0 и отдельная панель на Canvas, которую вы включаете и выключаете.
5. Переход между сценами
Сцену загружают через SceneManager.LoadScene с её именем или номером. Номер появляется, только если сцена добавлена в список сборки: File → Build Profiles (в старых версиях Build Settings). Забытая сцена в этом списке — классическая ошибка «Scene couldn't be loaded».
Чтобы данные — очки, жизни — пережили смену сцены, используют DontDestroyOnLoad, статический класс или ScriptableObject.
Порядок, в котором стоит учиться
Не пытайтесь сделать всё сразу. Сначала добейтесь, чтобы кубик ездил по полу и прыгал, потом поставьте камеру, потом добавьте монетку и счёт на экране, потом — меню и вторую сцену. Каждый шаг — отдельный маленький скрипт, который вы понимаете целиком.
Когда что-то не работает, откройте Console: ошибка почти всегда указывает на файл и строку. О том, как читать ошибки, — в статье «Частые ошибки Unity и как их исправить», а о полном пути от идеи до сборки — на странице «Как создать игру».
Когда быстрее через ИИ-агента
ИИ-агент LeanTech пишет скрипт C# под вашу версию Unity и систему ввода, объясняет каждую строку и говорит, какие поля заполнить в инспекторе. Можно приложить текст ошибки или свой недописанный код. Спрайты и иконки для прототипа он тоже сгенерирует — файлами PNG. Работает без VPN, оплата картой РФ.
Чего агент не делает: не работает внутри редактора Unity, не открывает ваш проект, не расставляет объекты в сцене и не делает 3D-модели. Скрипт вы добавляете в проект и вешаете на объект сами.