Зачем веб-разработчику Unity
Что общего и что нового в Unity по сравнению с фронтенд- и бэкенд-разработкой.
Если вы пишете на TypeScript/React в браузере и в Node на сервере, переход в Unity ощущается одновременно знакомым и чужим. С одной стороны — управляемая среда выполнения (CLR/Mono/IL2CPP вместо V8), строгая типизация (C# вместо TS), компонентная архитектура (GameObject + Components вместо React), циклы перерисовки и события. С другой — настоящая 3D-сцена, физика, рендеринг через GPU и асинхронный ассет-конвейер.
Эта энциклопедия — практическое введение в разработку 3D-игр в Unity 6 для тех, кому проще объяснять через знакомые веб-абстракции.
Что вы умеете и что это даст вам в Unity
- Декларативная композиция через React-компоненты
- Реактивное обновление: state → render
- Иерархия DOM, родитель и потомки
- CSS transforms (
translate,rotate,scale) requestAnimationFrameдля анимацийaddEventListenerдля ввода- Vite/Webpack для сборки ассетов
- Композиция GameObject через Components (включая ваши
MonoBehaviour) - Императивный
Update()или event-driven через подписки на UnityEvents - Иерархия сцены: Transform с родителем и детьми
transform.position / rotation / localScaleв 3D-пространстве- Game Loop в движке:
Update,LateUpdate,FixedUpdate - Input System (новый) или классический
Input(legacy) - Сборка → Player через IL2CPP/Mono, ассеты — через AssetBundles или Addressables
Чего нет в браузере и почему это интересно
- Главный поток с предсказуемым 60+ FPS. В вебе вы пишете “к 60 FPS”, но это редко жёсткое требование. В Unity всё подчинено фрейм-таймингу: 16.6 мс на кадр для 60 FPS, 11.1 мс для 90 FPS (VR), 8.3 мс для 120 FPS.
- GPU-программирование рядом. Шейдеры (HLSL или Shader Graph), материалы, проходы рендеринга — это ваш повседневный инструментарий, а не экзотика.
- Физика как часть движка. Rigidbody, столкновения, raycast — встроены, а не сторонняя библиотека.
- Ассет-конвейер, который импортирует FBX, текстуры, аудио и автоматически генерирует мета-данные.
- Платформ много. Один проект — это Windows, macOS, Linux, Android, iOS, WebGL, консоли. С разными профилями производительности и ограничениями.
Главная ментальная перестройка: вместо “функция отрабатывает за N миллисекунд, и это нормально”
думайте — “Update() выполняется 60 раз в секунду, и каждый вызов добавляется в бюджет кадра”.
Аллокации в Update() — главный враг плавности.
Куда дальше
В следующем разделе короткий обзор стека: версии Unity, языки, рендер-пайплайны и сопутствующие инструменты. После этого — главная глава про 3D-разработку.