Unity: asoslari, arxitekturasi va C# da dasturlash

Muallif: IT Sectr Nashr etilgan: 2026-05-02 O'qish vaqti: 9 daq

Unity — bu 2D va 3D ilovalarni yaratish uchun mobil platformalar, ish stoli va konsollarni qo'llab-quvvatlovchi kross-platformali o'yin muharrikidir. U o'yinlarni ishlab chiqish uchun ham, arxitektura, avtomobilsozlik va chakana savdodagi no'yin ilovalari uchun ham qo'llaniladi. Unity Technologies, 2025 ma'lumotlariga ko'ra, App Store top 1000 dagi mobil o'yinlarning 70% dan ortig'i Unity da yaratilgan. C# — muharrikning asosiy dasturlash tili bo'lib, unda o'yin mantig'i, komponentlar va muharrir skriptlari yoziladi.

Asosiy

  • Unity — 2D, 3D, AR va VR qo'llab-quvvatlovchi kross-platformali o'yin muharriki
  • C# — o'yin mantig'i, komponentlar va muharrir skriptlarini yozish uchun asosiy til
  • Komponent arxitekturasi — obyektlarning xatti-harakati komponentlardan quriladi (MonoBehaviour)
  • Asset Store — tayyor modellar, teksturalar, tovushlar va plaginlar bilan bozor
  • Mobil yig'ish — ARM arxitekturasi uchun optimallashtirish bilan iOS va Android uchun buildlar

Unity nima?

Unity — 2005 yilda Unity Technologies tomonidan yaratilgan o'yinlar va real vaqt ilovalarini ishlab chiqish muhitidir. Muharrik iOS, Android, Windows, macOS, PlayStation, Xbox, Nintendo Switch va WebGL ni o'z ichiga olgan 27 platformani qo'llab-quvvatlaydi. Unity Gaming Report (2024) hisobotiga ko'ra, 2023 yilda Unity da har oy 3 milliarddan ortiq mobil o'yin ishga tushirilgan.

Unity ning asosiy xususiyati komponentga yo'naltirilgan arxitekturadir. Sahnadagi har bir obyekt bo'sh konteyner (GameObject) bo'lib, unga xatti-harakatini belgilaydigan komponentlar qo'shiladi: renderlash, fizika, tovush, animatsiya va foydalanuvchi mantig'i. Bu Unity ni xatti-harakat sinf merosi orqali aniqlanadigan Unreal Engine kabi iyerarxik muharriklardan farqlaydi.

Statista (2025) ma'lumotlariga ko'ra, Unity mobil o'yinlar uchun o'yin muharriklari bozorining 48% ini egallaydi, Unreal Engine (15%) va o'z yechimlaridan (37%) oldinda. Muharrik past kirish darajasi uchun indie studiyalar va turli platformalarda yig'ish pipeline ning moslashuvchanligi uchun yirik nashriyotlar tomonidan tanlanadi.

Unity arxitekturasi: sahnalar, obyektlar va komponentlar

Unity arxitekturasi to'rtta asosiy konsepsiyaga asoslanadi: sahnalar, GameObjects, komponentlar va prefablar. Bu ierarxiyani tushunish muharrik bilan samarali ishlash uchun zarur.

Sahnalar va GameObjects

Sahna (Scene) — o'yin darajasi yoki ilova holatining barcha obyektlarini o'z ichiga olgan konteyner. Har bir sahna o'zining GameObjects, yorug'lik manbalari, kameralar va audio manbalariga ega. Sahnalar o'rtasida o'tish SceneManager.LoadScene() orqali amalga oshiriladi.

GameObject Unity ning asosiy qurilish blokidir. Uning vizual tasviri yoki standart xatti-harakati yo'q — bu sahna ierarxiyasidagi bo'sh tugun. Barcha xatti-harakat va ko'rinish komponentlar orqali qo'shiladi. Masalan, GameObject ni ko'rinadigan qilish uchun unga MeshRenderer qo'shiladi; fizikaga bo'ysunishi uchun — Rigidbody.

MonoBehaviour komponentlari

MonoBehaviour — Unity dagi barcha maxsus skriptlar uchun asosiy sinfdir. U hayot siklini ta'minlaydi: Awake (obyekt yuklanganda chaqiriladi), Start (birinchi kadrdan oldin), Update (har bir kadr), FixedUpdate (har bir fizik qadam) va OnDestroy (yo'q qilinganda).

Har bir komponent bir xil GameObject dagi boshqa komponentlar bilan GetComponent<T>() orqali o'zaro aloqa qilishi mumkin. Bu modulli tizimlar yaratishga imkon beradi: masalan, Health komponenti Movement komponentidan mustaqil bo'lishi mumkin, lekin ikkalasi ham UnityEvent orqali hodisalarga reaksiya berishi mumkin.

Prefablar

Prefab — loyihada asset sifatida saqlangan GameObject shablonidir. Prefabning o'zgarishi avtomatik ravishda sahnadagi barcha nusxalariga qo'llaniladi. Bu Unity da qayta foydalanishning markaziy mexanizmi bo'lib, iteratsiyalarni tezlashtiradi va xatolar sonini kamaytiradi.

Prefablar ichki joylashtirishni (Nested Prefabs) qo'llab-quvvatlaydi: prefab boshqa prefablarni o'z ichiga olishi mumkin, iyerarxiya hosil qiladi. Masalan, avtomobil prefabi g'ildirak, motor va kuzov prefablarini o'z ichiga olishi mumkin, har biri o'z komponentlari va sozlamalari bilan.

Unity da C# kod misollari

Personaj harakati uchun asosiy C# komponentini ko'rib chiqaylik. Bu skript obyektni joriy aylanishiga nisbatan oldinga siljitadi va foydalanuvchi kiritishini qayta ishlaydi.

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() metodi har bir kadrda chaqiriladi. Input.GetAxis vertikal boshqaruvni o'qiydi, SimpleMove fizikani hisobga olgan holda harakatni qo'llaydi. CharacterController — to'qnashuvlarni fizika yozishga hojat qoldirmasdan boshqaradigan o'rnatilgan Unity komponenti.

To'qnashuvlarni boshqarish va zarar yetkazish uchun skript namunasi:

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 metodi GameObject boshqa obyekt bilan to'qnashganda fizika muharriki tomonidan chaqiriladi. Teg bo'yicha taqqoslash (CompareTag) to'qnashuv aynan nima bilan sodir bo'lganligini aniqlaydi. Bunday yondashuv DamageHandler komponentini o'yinchi, dushmanlar va buziladigan obyektlar uchun kodni o'zgartirmasdan qayta ishlatishga imkon beradi.

Unity da mobil o'yinlarni ishlab chiqish

Unity cheklangan resursli mobil qurilmalar uchun o'yinlarni optimallashtirish bo'yicha ixtisoslashgan vositalarni taqdim etadi. Optimallashtirishning asosiy yo'nalishlari xotirani boshqarish, draw calls sonini kamaytirish va turli ekran o'lchamlariga moslashishni o'z ichiga oladi.

Unumdorlikni optimallashtirish

Mobil platformalar uchun Unity Asset Bundles ni taklif qiladi — resurslarni talab bo'yicha yuklaydigan, ilovaning boshlang'ich hajmini kamaytiradigan kontentni paketlash tizimi. Bu, ayniqsa, barcha resurslarni birdaniga yuklash ilovalar do'konlari cheklovlari tufayli mumkin bo'lmagan ko'p darajali yoki personajli o'yinlar uchun muhimdir.

Unity Profiler real qurilmada CPU, GPU va xotira ishlatilishini ADB (Android) yoki USB (iOS) orqali ulanish bilan tahlil qilish imkonini beradi. Unity Documentation (2025) ma'lumotlariga ko'ra, mobil qurilmalarda draw calls sonini 100–300 gacha optimallashtirish o'rta segment qurilmalarda barqaror 60 FPS ni ta'minlaydi.

Sensorli kiritish va UI

Mobil o'yinlar uchun Unity sensorli boshqaruv, akselerometr va giroskopni yagona API ostida abstraksiya qiluvchi Input System dan foydalanadi. Virtual joystiklar, surishlar va bosishlar sensorli ishlov berish kodini yozmasdan Input Action Assets orqali sozlanadi.

Unity ning UI tizimi (uGUI) interfeysni turli ekran nisbatlariga avtomatik moslashtirish uchun Canvas Scaler ni qo'llab-quvvatlaydi. Scale With Screen Size rejimidagi Canvas Scaler komponenti tugmalarning planshetlar va smartfonlarda ekran chetlaridan chiqmasligini kafolatlaydi.

iOS va Android uchun yig'ish

Unity da mobil o'yinlarni yig'ish Build Settings oynasi orqali amalga oshiriladi. Android uchun Android SDK va NDK talab qilinadi, Unity APK yoki AAB ga kompilyatsiya qilinadigan Gradle loyihasini yaratadi. iOS uchun Xcode talab qilinadi — Unity Objective-C/Swift qobig'i bilan Xcode loyihasini yaratadi, so'ngra Apple orqali kompilyatsiya qilinadi.

IL2CPP — C# kodini C++ ga, so'ngra native ARM kodiga aylantiruvchi kompilyatsiya variantidir. Unity Benchmark (2024) ma'lumotlariga ko'ra, IL2CPP iOS va Android da Mono bilan solishtirganda unumdorlikni 15–25% ga oshiradi, lekin yig'ish vaqtini va binar fayl hajmini oshiradi.

Unity ni boshqa muharriklar bilan solishtirish

Unity o'yin muharriklari bozorida asosiy alternativlar bo'lgan Unreal Engine va Godot bilan solishtiriladi. Tanlov loyiha turiga, jamoaning malakasiga va maqsadli platformalarga bog'liq.

MezonUnityUnreal Engine 5Godot 4
TilC#C++ / BlueprintsGDScript / C#
GrafikaBuilt-in / URP / HDRPNanite + LumenO'z rendereri
Mobil optimallashtirishAjoyib (70% mobil o'yin)Yaxshi (AAA port)Yaxshi (yengil muharrik)
Kirish darajasiPastYuqoriPast
LitsenziyaPersonal / Pro / Enterprise5% royalti ($1M gacha)MIT (bepul)

Mobil o'yinlar uchun Unity moslashuvchan renderlash tizimi (URP — Universal Render Pipeline) tufayli sanoat standarti bo'lib qolmoqda, bu tizim cheklangan hisoblash quvvatiga ega mobil GPU lar uchun grafikani optimallashtiradi. URP avtomatik ravishda renderlash o'tishlari sonini kamaytiradi va GPU yukini kamaytirish uchun shaderlarni birlashtiradi.

Unreal Engine 5 yaxshiroq grafik sifatini ta'minlaydi (geometriya uchun Nanite, yoritish uchun Lumen), lekin kuchliroq uskuna va jamoaning ko'proq tajribasini talab qiladi. Godot ochiq kod va kichik muharrik hajmi bilan jalb qiladi, lekin kamroq tayyor resurslar va kichikroq mutaxassislar bozoriga ega.

Unity no'yin ilovalari uchun

Unity o'yin ishlab chiqishdan tashqarida — arxitektura, avtomobil sanoati, chakana savdo va ta'limda faol qo'llaniladi. Real vaqt vizualizatsiyasi (RT3D) interaktiv 3D taqdimotlar, simulyatorlar va mahsulot konfiguratorlarini yaratishga imkon beradi.

Avtomobil sanoatida Unity avtomobillarning raqamli egizaklari va HMI (Human-Machine Interface) tizimlarini yaratish uchun ishlatiladi. Mercedes-Benz va BMW jismoniy prototip chiqarilishidan oldin asboblar paneli va multimedia tizimlarini prototiplash uchun Unity dan foydalanadi.

Chakana savdoda Unity mahsulot konfiguratorlari uchun qo'llaniladi: IKEA (virtual mebel joylashtirish), Nike (oyoq kiyimini sozlash) va Audi (avtomobil konfiguratori) — bu loyihalarning barchasi Unity da qurilgan. Foydalanuvchi real vaqtda mahsulotning rangini, materiallarini va jihozlarini o'zgartirishi, natijani 3D da ko'rishi mumkin.

No'yin loyihalari uchun Unity maxsus vositalarni taqdim etadi: AR Foundation (ARKit va ARCore uchun), Pixyz Plugin (CAD modellarini import qilish uchun) va Unity Reflect (Revit BIM modellari bilan sinxronlash uchun). Kompaniya korporativ mijozlar uchun bulut xizmatlarini o'z ichiga olgan Unity Industry yo'nalishini faol rivojlantirmoqda.

Tez-tez beriladigan savollar

Yangi boshlovchi uchun Unity da ishlashni o'rganish qiyinmi?

Unity keng hujjatlar, bepul Unity Learn kurslari va katta jamoa tufayli yangi boshlovchilar uchun eng qulay o'yin muharriklaridan biri hisoblanadi. Boshlash uchun C# asoslarini bilish va komponent arxitekturasi tamoyillarini tushunish kifoya. Ko'pchilik yangi boshlovchilar birinchi o'yinlarini 2–3 oy ichida yaratadilar.

Unity da 2D o'yinlar yaratish mumkinmi?

Ha, Unity to'liq 2D pipeline ga ega: Sprite Renderer, 2D Physics (Box2D), plitkalardan darajalar yaratish uchun Tilemap va spritelarning skelet animatsiyasi uchun 2D Animation. Hollow Knight va Cuphead kabi ko'plab mashhur 2D o'yinlar Unity da yaratilgan. 2D vositalari plaginlarni o'rnatishga hojat qoldirmasdan muharrikka o'rnatilgan.

Mobil ishlab chiqish uchun Unity qancha turadi?

Unity Personal yillik daromad $200 minggacha bo'lganda bepul. Unity Pro har bir ishlab chiquvchi uchun yiliga $2 040 turadi va ilg'or profillash vositalari, bulutli yig'ish va ustuvor qo'llab-quvvatlashni o'z ichiga oladi. Mobil ishlab chiqish uchun Personal funksionalligi ko'pchilik indie loyihalar uchun yetarli.

Unity Cocos2d o'yin muharrikidan nima bilan farq qiladi?

Cocos2d — C++, Lua va JavaScript ni qo'llab-quvvatlovchi, sodda 2D o'yinlarga yo'naltirilgan 2D framework dir. Unity muharrir, vizual vositalar va 27 platformani qo'llab-quvvatlash bilan to'liq 3D/2D muharrikdir. Cocos2d Osiyoda giperkazuall o'yinlar uchun mashhur, Unity — har qanday janr uchun universal tanlov.

Unity AR va VR ni qo'llab-quvvatlaydimi?

Ha, Unity AR Foundation (ARKit + ARCore), XR Interaction Toolkit va OpenXR orqali o'rnatilgan AR va VR qo'llab-quvvatlashga ega. Unity da Half-Life: Alyx (texnik namoyish) va VRChat kabi VR loyihalari yaratilgan. Muharrik barcha asosiy VR quloqchinlarini qo'llab-quvvatlaydi: Meta Quest, HTC Vive, Valve Index va PlayStation VR.

Xulosa

  • Unity — C# da 2D/3D o'yinlar va real vaqt ilovalari uchun kross-platformali muharrik
  • Arxitektura sahnalar, GameObjects, MonoBehaviour komponentlari va prefablarga asoslanadi
  • C# — o'yin mantig'i, komponentlar va muharrir kengaytmalari uchun yagona til
  • Mobil optimallashtirish — iOS va Android uchun IL2CPP, Asset Bundles, URP va Profiler
  • Solishtirish — Unity mobil bozorda yetakchi (48%), Unreal — AAA da, Godot — indie da
  • No'yin qo'llanilishi — arxitektura, avtomobil sanoati, chakana savdo va interaktiv 3D taqdimotlar
  • Kirish darajasi — past, bepul Unity Learn kurslari va katta jamoa bilan

Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz

IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.

Loyihani muhokama qilish

Shuningdek o'qing