Unity: основи, архітектура та розробка на C#

Автор: IT Sectr Опубліковано: 2026-05-02 Час читання: 9 хв

Unity — це кроссплатформний ігровий рушій для створення 2D та 3D застосунків з підтримкою збірки під мобільні платформи, десктоп та консолі. Він використовується як для розробки ігор, так і для неігрових застосунків в архітектурі, автомобілебудуванні та роздрібній торгівлі. За даними Unity Technologies, 2025, на Unity створено понад 70% мобільних ігор у топ-1000 App Store. C# — основна мова програмування рушія, якою пишеться ігрова логіка, компоненти та редакторські скрипти.

Головне

  • Unity — кроссплатформний ігровий рушій з підтримкою 2D, 3D, AR та VR
  • C# — основна мова для написання ігрової логіки, компонентів та редакторських скриптів
  • Компонентна архітектура — поведінка об’єктів будується з компонентів (MonoBehaviour)
  • Asset Store — маркетплейс з готовими моделями, текстурами, звуками та плагінами
  • Мобільна збірка — білди під iOS та Android з оптимізацією під ARM-архітектуру

Що таке Unity?

Unity — це середовище розробки ігор та застосунків реального часу, створене Unity Technologies у 2005 році. Рушій підтримує 27 платформ, включаючи iOS, Android, Windows, macOS, PlayStation, Xbox, Nintendo Switch та WebGL. Згідно зі звітом Unity Gaming Report (2024), у 2023 році на Unity було запущено понад 3 мільярди мобільних ігор щомісяця.

Основна особливість Unity — компонентно-орієнтована архітектура. Кожен об’єкт на сцені являє собою порожній контейнер (GameObject), до якого додаються компоненти, що визначають його поведінку: рендеринг, фізика, звук, анімація та користувацька логіка. Це відрізняє Unity від ієрархічних рушіїв на кшталт Unreal Engine, де поведінка визначається успадкуванням класів.

За даними Statista (2025), Unity займає 48% ринку ігрових рушіїв для мобільних ігор, випереджаючи Unreal Engine (15%) та власні рішення (37%). Рушій обирають інді-студії за низький поріг входу та великі видавці — за гнучкість пайплайну збірки під різні платформи.

Архітектура Unity: сцени, об’єкти та компоненти

Архітектура Unity будується на чотирьох фундаментальних концепціях: сцени, GameObjects, компоненти та префаби. Розуміння цієї ієрархії необхідне для ефективної роботи з рушієм.

Сцени та GameObjects

Сцена (Scene) — це контейнер, який містить всі об’єкти ігрового рівня або стану застосунку. Кожна сцена має власний набір GameObjects, джерел світла, камер та аудіоджерел. Перехід між сценами здійснюється через SceneManager.LoadScene().

GameObject — базовий будівельний блок Unity. Він не має візуального представлення та поведінки за замовчуванням — це порожній вузол в ієрархії сцени. Вся поведінка та зовнішній вигляд додаються через компоненти. Наприклад, щоб зробити GameObject видимим, до нього додають MeshRenderer; щоб він підкорявся фізиці — Rigidbody.

Компоненти MonoBehaviour

MonoBehaviour — це базовий клас для всіх користувацьких скриптів в Unity. Він надає життєвий цикл: Awake (викликається при завантаженні об’єкта), Start (перед першим кадром), Update (кожен кадр), FixedUpdate (кожен фізичний крок) та OnDestroy (при знищенні).

Кожен компонент може взаємодіяти з іншими компонентами на тому ж GameObject через GetComponent<T>(). Це дозволяє створювати модульні системи: наприклад, компонент Health може бути незалежним від компонента Movement, але обидва можуть реагувати на події через UnityEvent.

Префаби

Префаб (Prefab) — це шаблон GameObject, збережений у проекті як асет. Зміна префабу автоматично застосовується до всіх його екземплярів на сценах. Це центральний механізм перевикористання в Unity, який прискорює ітерації та зменшує кількість помилок.

Префаби підтримують вкладеність (Nested Prefabs): префаб може містити інші префаби, утворюючи ієрархію. Наприклад, префаб автомобіля може містити префаби колеса, двигуна та кузова, кожен зі своїми компонентами та налаштуваннями.

Приклади коду на C# в Unity

Розглянемо базовий компонент руху персонажа на C#. Цей скрипт переміщує об’єкт вперед відносно його поточного повороту та обробляє введення користувача.

csharp
using UnityEngine;

public class PlayerMovement : MonoBehaviour
{
    public float speed = 5f;

    void Update()
    {
        float move = Input.GetAxis("Vertical");
        Vector3 direction = transform.forward * move;
        CharacterController controller = GetComponent<CharacterController>();
        controller.SimpleMove(direction * speed);
    }
}

Метод Update() викликається кожен кадр. Input.GetAxis зчитує вертикальне керування, SimpleMove застосовує рух з урахуванням фізики. CharacterController — вбудований компонент Unity, який обробляє колізії без необхідності писати фізику зіткнень.

Приклад скрипту для обробки зіткнень та нанесення шкоди:

csharp
using UnityEngine;

public class DamageHandler : MonoBehaviour
{
    public int health = 100;

    void OnCollisionEnter(Collision collision)
    {
        if (collision.gameObject.CompareTag("Enemy"))
        {
            health -= 10;
            if (health <= 0)
            {
                Destroy(gameObject);
            }
        }
    }
}

Метод OnCollisionEnter викликається фізичним рушієм при зіткненні GameObject з іншим об’єктом. Порівняння за тегом (CompareTag) визначає, з чим саме сталося зіткнення. Такий підхід дозволяє перевикористовувати компонент DamageHandler для гравця, ворогів та руйнівних об’єктів без зміни коду.

Розробка мобільних ігор на Unity

Unity надає спеціалізовані інструменти для оптимізації ігор під мобільні пристрої з обмеженими ресурсами. Ключові напрямки оптимізації включають управління пам’яттю, зниження кількості draw calls та адаптацію під різні роздільні здатності екрану.

Оптимізація продуктивності

Для мобільних платформ Unity пропонує Asset Bundles — систему пакування контенту, яка завантажує ресурси на вимогу, зменшуючи початковий розмір застосунку. Це особливо важливо для ігор з великою кількістю рівнів або персонажів, де завантаження всіх асетів одночасно неможливе через ліміти магазинів застосунків.

Профілювальник Unity (Profiler) дозволяє аналізувати використання CPU, GPU та пам’яті на реальному пристрої через підключення по ADB (Android) або USB (iOS). За даними Unity Documentation (2025), оптимізація кількості draw calls до 100–300 на мобільних пристроях дає стабільні 60 FPS на пристроях середнього сегмента.

Сенсорне введення та UI

Для мобільних ігор Unity використовує систему Input System, яка абстрагує сенсорне керування, акселерометр та гіроскоп під єдиний API. Віртуальні джойстики, свайпи та тапи налаштовуються через Input Action Assets без написання коду обробки дотиків.

UI-система Unity (uGUI) підтримує Canvas Scaler для автоматичної адаптації інтерфейсу під різні співвідношення сторін екрану. Компонент Canvas Scaler з режимом Scale With Screen Size гарантує, що кнопки не виходять за межі екрану на планшетах та смартфонах.

Збірка під iOS та Android

Збірка мобільних ігор в Unity виконується через вікно Build Settings. Для Android потрібен Android SDK та NDK, Unity генерує Gradle-проект, який компілюється в APK або AAB. Для iOS потрібен Xcode — Unity створює Xcode-проект з Objective-C/Swift обгорткою, який фінально компілюється через Apple.

IL2CPP — опція компіляції, яка транслює C# код в C++ і потім в нативний ARM-код. За даними Unity Benchmark (2024), IL2CPP збільшує продуктивність на 15–25% на iOS та Android порівняно з Mono, але збільшує час збірки та розмір бінарного файлу.

Порівняння Unity з іншими рушіями

Unity порівнюють з Unreal Engine та Godot як основними альтернативами на ринку ігрових рушіїв. Вибір залежить від типу проекту, кваліфікації команди та цільових платформ.

КритерійUnityUnreal Engine 5Godot 4
МоваC#C++ / BlueprintsGDScript / C#
ГрафікаBuilt-in / URP / HDRPNanite + LumenВласний рендерер
Мобільна оптимізаціяВідмінна (70% мобільних ігор)Хороша (AAA-перенос)Хороша (легкий рушій)
Поріг входуНизькийВисокийНизький
ЛіцензіяPersonal / Pro / Enterprise5% роялті (до $1M)MIT (безкоштовно)

Для мобільних ігор Unity залишається стандартом індустрії завдяки гнучкій системі рендерингу (URP — Universal Render Pipeline), яка оптимізує графіку під мобільні GPU з обмеженою обчислювальною потужністю. URP автоматично зменшує кількість проходів рендерингу та об’єднує шейдери для зниження навантаження на GPU.

Unreal Engine 5 забезпечує кращу якість графіки (Nanite для геометрії, Lumen для освітлення), але потребує потужнішого обладнання та більшого досвіду команди. Godot приваблює відкритим кодом та малим розміром рушія, але має менше готових асетів та менший ринок спеціалістів.

Unity для неігрових застосунків

Unity активно використовується за межами геймдеву — в архітектурі, автомобільній промисловості, роздрібній торгівлі та освіті. Візуалізація реального часу (RT3D) дозволяє створювати інтерактивні 3D-презентації, симулятори та конфігуратори продуктів.

В автомобільній індустрії Unity використовується для створення цифрових двійників автомобілів та систем HMI (Human-Machine Interface). Mercedes-Benz та BMW використовують Unity для прототипування приладових панелей та систем мультимедіа ще до того, як випущено фізичний прототип.

У роздрібній торгівлі Unity застосовується для конфігураторів продуктів: IKEA (віртуальне розставляння меблів), Nike (кастомізація кросівок) та Audi (конфігуратор автомобілів) — всі ці проекти побудовані на Unity. Користувач може в реальному часі змінювати колір, матеріали та комплектацію продукту, бачачи результат у 3D.

Для неігрових проектів Unity надає спеціальні інструменти: AR Foundation (для ARKit та ARCore), Pixyz Plugin (для імпорту CAD-моделей) та Unity Reflect (для синхронізації з BIM-моделями Revit). Компанія активно розвиває напрямок Unity Industry, який включає хмарні сервіси для корпоративних клієнтів.

Часті запитання

Чи складно навчитися працювати в Unity новачкові?

Unity вважається одним з найдоступніших ігрових рушіїв для початківців завдяки великій документації, безкоштовним курсам Unity Learn та величезній спільноті. Для старту достатньо знати основи C# та розуміти принципи компонентної архітектури. Більшість новачків створюють першу гру за 2–3 місяці.

Чи можна створювати 2D ігри в Unity?

Так, Unity має повноцінний 2D-пайплайн: Sprite Renderer, 2D Physics (Box2D), Tilemap для створення рівнів з тайлів та 2D Animation для скелетної анімації спрайтів. Багато популярних 2D ігор, включаючи Hollow Knight та Cuphead, створені на Unity. 2D-інструменти вбудовані в рушій без необхідності встановлення плагінів.

Скільки коштує Unity для мобільної розробки?

Unity Personal безкоштовний при річному доході до $200 тисяч. Unity Pro коштує $2 040 на рік на одного розробника та включає розширені інструменти профілювання, хмарну збірку та пріоритетну підтримку. Для мобільної розробки функціоналу Personal достатньо для більшості інді-проектів.

Чим Unity відрізняється від ігрового рушія Cocos2d?

Cocos2d — це 2D-фреймворк з підтримкою C++, Lua та JavaScript, орієнтований на прості 2D ігри. Unity — повноцінний 3D/2D рушій з редактором, візуальними інструментами та підтримкою 27 платформ. Cocos2d популярний в Азії для гіперказуальних ігор, Unity — універсальний вибір для будь-яких жанрів.

Чи підтримує Unity AR та VR?

Так, Unity має вбудовану підтримку AR та VR через AR Foundation (ARKit + ARCore), XR Interaction Toolkit та OpenXR. На Unity створено такі VR-проекти, як Half-Life: Alyx (технічна демонстрація) та VRChat. Рушій підтримує всі основні VR-шоломи: Meta Quest, HTC Vive, Valve Index та PlayStation VR.

Підсумки

  • Unity — кроссплатформний рушій для 2D/3D ігор та застосунків реального часу на C#
  • Архітектура будується на сценах, GameObjects, компонентах MonoBehaviour та префабах
  • C# — єдина мова для ігрової логіки, компонентів та редакторських розширень
  • Мобільна оптимізація — IL2CPP, Asset Bundles, URP та Profiler для iOS та Android
  • Порівняння — Unity лідирує на мобільному ринку (48%), Unreal — в AAA, Godot — в інді
  • Неігрове застосування — архітектура, автомобілебудування, роздрібна торгівля та інтерактивні 3D-презентації
  • Поріг входу — низький, з безкоштовними курсами Unity Learn та величезною спільнотою

Ми розробимо мобільний застосунок під ключ

IT Sectr створює застосунки для iOS та Android для стартапів і бізнесу з 2017 року. Ми проконсультуємо вас і запропонуємо найкраще рішення.

Обговорити проект

Читайте також