Unity — je multiplatformní herní engine pro vytváření 2D a 3D aplikací s podporou kompilace na mobilní platformy, desktopy a konzole. Používá se jak pro vývoj her, tak i pro neherní aplikace v architektuře, automobilovém průmyslu a maloobchodě. Podle Unity Technologies, 2025, na Unity bylo vytvořeno více než 70% mobilních her v top 1000 App Store. C# — je hlavní programovací jazyk enginu, ve kterém se píše herní logika, komponenty a editorské skripty.
Hlavní body
Unity — je vývojové prostředí pro hry a aplikace v reálném čase, vytvořené společností Unity Technologies v roce 2005. Engine podporuje 27 platforem, včetně iOS, Android, Windows, macOS, PlayStation, Xbox, Nintendo Switch a WebGL. Podle zprávy Unity Gaming Report (2024) bylo v roce 2023 na Unity spuštěno měsíčně více než 3 miliardy mobilních her.
Hlavním rysem Unity je komponentově orientovaná architektura. Každý objekt na scéně je prázdný kontejner (GameObject), ke kterému se přidávají komponenty určující jeho chování: vykreslování, fyzika, zvuk, animace a uživatelská logika. To odlišuje Unity od hierarchických enginů jako Unreal Engine, kde je chování určeno dědičností tříd.
Podle Statista (2025) má Unity 48% trhu herních enginů pro mobilní hry, předčí Unreal Engine (15%) a vlastní řešení (37%). Engine je vybírán indie studii pro nízký vstupní práh a velkými vydavateli pro flexibilitu pipeline kompilace na různé platformy.
Architektura Unity je postavena na čtyřech základních konceptech: scény, GameObjects, komponenty a prefaby. Porozumění této hierarchii je nezbytné pro efektivní práci s enginem.
Scéna (Scene) — je kontejner, který obsahuje všechny objekty herní úrovně nebo stavu aplikace. Každá scéna má vlastní sadu GameObjects, zdrojů světla, kamer a audio zdrojů. Přechod mezi scénami se provádí pomocí SceneManager.LoadScene().
GameObject — základní stavební blok Unity. Nemá vizuální reprezentaci ani výchozí chování — je to prázdný uzel v hierarchii scény. Veškeré chování a vzhled se přidávají prostřednictvím komponent. Například, aby byl GameObject viditelný, přidá se mu MeshRenderer; aby se řídil fyzikou — Rigidbody.
MonoBehaviour — je základní třída pro všechny uživatelské skripty v Unity. Poskytuje životní cyklus: Awake (volá se při načtení objektu), Start (před prvním snímkem), Update (každý snímek), FixedUpdate (každý fyzikální krok) a OnDestroy (při zničení).
Každá komponenta může komunikovat s ostatními komponentami na stejném GameObject pomocí GetComponent<T>(). To umožňuje vytvářet modulární systémy: například komponenta Health může být nezávislá na komponentě Movement, ale obě mohou reagovat na události prostřednictvím UnityEvent.
Prefab — je šablona GameObjectu uložená v projektu jako asset. Změna prefabu se automaticky aplikuje na všechny jeho instance na scénách. To je centrální mechanismus znovupoužití v Unity, který zrychluje iterace a snižuje počet chyb.
Prefaby podporují vnořování (Nested Prefabs): prefab může obsahovat jiné prefaby, tvořící hierarchii. Například prefab automobilu může obsahovat prefaby kola, motoru a karoserie, každý se svými vlastními komponentami a nastavením.
Podívejme se na základní komponentu pohybu postavy v C#. Tento skript posouvá objekt vpřed vzhledem k jeho aktuální rotaci a zpracovává vstup uživatele.
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);
}
}
Metoda Update() se volá každý snímek. Input.GetAxis čte vertikální ovládání, SimpleMove aplikuje pohyb s ohledem na fyziku. CharacterController — vestavěná Unity komponenta, která zpracovává kolize bez nutnosti psát fyziku srážek.
Příklad skriptu pro zpracování kolizí a způsobení poškození:
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);
}
}
}
}
Metoda OnCollisionEnter je volána fyzikálním enginem při srážce GameObjectu s jiným objektem. Porovnání podle tagu (CompareTag) určuje, s čím přesně ke kolizi došlo. Tento přístup umožňuje znovupoužití komponenty DamageHandler pro hráče, nepátele a zničitelné objekty bez změny kódu.
Unity poskytuje specializované nástroje pro optimalizaci her na mobilních zařízeních s omezenými zdroji. Klíčové směry optimalizace zahrnují správu paměti, snížení počtu draw calls a přizpůsobení různým rozlišením obrazovky.
Pro mobilní platformy Unity nabízí Asset Bundles — systém balení obsahu, který načítá zdroje na vyžádání, čímž snižuje počáteční velikost aplikace. To je důležité zejména pro hry s mnoha úrovněmi nebo postavami, kde načtení všech assetů najednou není možné kvůli omezením obchodů s aplikacemi.
Unity Profiler umožňuje analyzovat využití CPU, GPU a paměti na skutečném zařízení přes ADB (Android) nebo USB (iOS). Podle Unity Documentation (2025) optimalizace počtu draw calls na 100–300 na mobilních zařízeních poskytuje stabilních 60 FPS na zařízeních střední třídy.
Pro mobilní hry Unity používá systém Input System, který abstrahuje dotykové ovládání, akcelerometr a gyroskop pod jednotné API. Virtuální joysticky, swipy a ťuky se konfigurují pomocí Input Action Assets bez nutnosti psát kód pro zpracování dotyků.
UI systém Unity (uGUI) podporuje Canvas Scaler pro automatické přizpůsobení rozhraní různým poměrům stran obrazovky. Komponenta Canvas Scaler s režimem Scale With Screen Size zaručuje, že tlačítka nepřesahují okraje obrazovky na tabletech a smartphonech.
Kompilace mobilních her v Unity se provádí pomocí okna Build Settings. Pro Android je vyžadován Android SDK a NDK, Unity generuje Gradle projekt, který je kompilován do APK nebo AAB. Pro iOS je vyžadován Xcode — Unity vytváří Xcode projekt s Objective-C/Swift obalem, který je poté kompilován prostřednictvím Apple.
IL2CPP — možnost kompilace, která překládá C# kód do C++ a poté do nativního ARM kódu. Podle Unity Benchmark (2024) IL2CPP zvyšuje výkon o 15–25% na iOS a Android ve srovnání s Mono, ale prodlužuje dobu kompilace a zvyšuje velikost binárního souboru.
Unity je srovnáváno s Unreal Engine a Godot jako hlavními alternativami na trhu herních enginů. Volba závisí na typu projektu, kvalifikaci týmu a cílových platformách.
| Kritérium | Unity | Unreal Engine 5 | Godot 4 |
|---|---|---|---|
| Jazyk | C# | C++ / Blueprints | GDScript / C# |
| Grafika | Built-in / URP / HDRP | Nanite + Lumen | Vlastní renderer |
| Mobilní optimalizace | Vynikající (70% mobilních her) | Dobrá (AAA port) | Dobrá (lehký engine) |
| Vstupní práh | Nízký | Vysoký | Nízký |
| Licence | Personal / Pro / Enterprise | 5% licenční poplatky (do $1M) | MIT (zdarma) |
Pro mobilní hry zůstává Unity průmyslovým standardem díky flexibilnímu systému vykreslování (URP — Universal Render Pipeline), který optimalizuje grafiku pro mobilní GPU s omezeným výpočetním výkonem. URP automaticky snižuje počet vykreslovacích průchodů a spojuje shadery pro snížení zátěže GPU.
Unreal Engine 5 poskytuje lepší kvalitu grafiky (Nanite pro geometrii, Lumen pro osvětlení), ale vyžaduje výkonnější hardware a více zkušeností týmu. Godot pŘitahuje otevřeným zdrojovým kódem a malou velikostí enginu, ale má méně hotových assetů a menší trh specialistů.
Unity je aktivně používáno mimo game development — v architektuře, automobilovém průmyslu, maloobchodě a vzdělávání. Vizualizace v reálném čase (RT3D) umožňuje vytvářet interaktivní 3D prezentace, simulátory a konfigurátory produktů.
V automobilovém průmyslu je Unity používáno pro vytváření digitálních dvojčat automobilů a systémů HMI (Human-Machine Interface). Mercedes-Benz a BMW používají Unity pro prototypování přístrojových panelů a multimediálních systémů ještě před vydáním fyzického prototypu.
V maloobchodě je Unity používáno pro konfigurátory produktů: IKEA (virtuální uspořádání nábytku), Nike (přizpůsobení obuvi) a Audi (konfigurátor automobilů) — všechny tyto projekty jsou postaveny na Unity. Uživatel může v reálném čase měnit barvu, materiály a výbavu produktu a vidět výsledek ve 3D.
Pro neherní projekty Unity poskytuje speciální nástroje: AR Foundation (pro ARKit a ARCore), Pixyz Plugin (pro import CAD modelů) a Unity Reflect (pro synchronizaci s BIM modely Revit). Společnost aktivně rozvíjí směr Unity Industry, který zahrnuje cloudové služby pro firemní klienty.
Často kladené otázky
Unity je považováno za jeden z nejdostupnějších herních enginů pro začátečníky díky rozsáhlé dokumentaci, bezplatným kurzům Unity Learn a obrovské komunitě. Pro začátek stačí znát základy C# a rozumět principům komponentové architektury. Většina začátečníků vytvoří svou první hru za 2–3 měsíce.
Ano, Unity má plnohodnotný 2D pipeline: Sprite Renderer, 2D Physics (Box2D), Tilemap pro vytváření úrovní z dlaždic a 2D Animation pro kosterní animaci spriteů. Mnoho populárních 2D her, včetně Hollow Knight a Cuphead, bylo vytvořeno v Unity. 2D nástroje jsou vestavěny do enginu bez nutnosti instalace pluginů.
Unity Personal je zdarma při ročním příjmu do $200 tisíc. Unity Pro stojí $2 040 ročně na vývojáře a zahrnuje pokročilé nástroje profilování, cloudovou kompilaci a prioritní podporu. Pro mobilní vývoj je funkcionalita Personal dostačující pro většinu indie projektů.
Cocos2d — je 2D framework s podporou C++, Lua a JavaScript, zaměřený na jednoduché 2D hry. Unity je plnohodnotný 3D/2D engine s editorem, vizuálními nástroji a podporou 27 platforem. Cocos2d je populární v Asii pro hyperkázální hry, Unity je univerzální volba pro jakýkoli žánr.
Ano, Unity má vestavěnou podporu AR a VR prostřednictvím AR Foundation (ARKit + ARCore), XR Interaction Toolkit a OpenXR. Na Unity byly vytvořeny VR projekty jako Half-Life: Alyx (technická demonstrace) a VRChat. Engine podporuje všechny hlavní VR headsety: Meta Quest, HTC Vive, Valve Index a PlayStation VR.
Shrnutí
Vyvineme mobilní aplikaci na klíč
IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.
Přečtěte si také