Unity, 2D ve 3D uygulamalar oluşturmak için kullanılan, mobil platformlar, masaüstü ve konsollar için derleme desteği sunan çapraz platform oyun motorudur. Hem oyun geliştirme hem de mimari, otomotiv ve perakende alanlarındaki oyun dışı uygulamalar için kullanılır. Unity Technologies, 2025 verilerine göre, App Store ilk 1000'deki mobil oyunların %70'inden fazlası Unity ile oluşturulmuştur. C#, motorun birincil programlama dilidir ve oyun mantığı, bileşenler ve editör betikleri bu dille yazılır.
Anahtar Noktalar
Unity, Unity Technologies tarafından 2005 yılında oluşturulmuş bir oyun ve gerçek zamanlı uygulama geliştirme ortamıdır. Motor, iOS, Android, Windows, macOS, PlayStation, Xbox, Nintendo Switch ve WebGL dahil 27 platformu destekler. Unity Gaming Report (2024) raporuna göre, 2023 yılında Unity üzerinde aylık 3 milyardan fazla mobil oyun yayınlanmıştır.
Unity'nin temel özelliği, bileşen odaklı mimarisidir. Sahnedeki her nesne, içine davranışını belirleyen bileşenlerin (render, fizik, ses, animasyon ve özel mantık) eklendiği boş bir kapsayıcıdır (GameObject). Bu, Unity'yi davranışın sınıf kalıtımıyla belirlendiği Unreal Engine gibi hiyerarşik motorlardan ayırır.
Statista (2025) verilerine göre Unity, mobil oyun motoru pazarının %48'ine sahiptir ve Unreal Engine (%15) ile özel çözümleri (%37) geride bırakmaktadır. Bağımsız stüdyolar düşük giriş engeli nedeniyle, büyük yayıncılar ise farklı platformlarda derleme hattının esnekliği için motoru seçer.
Unity mimarisi dört temel kavram üzerine kuruludur: sahneler, GameObjects, bileşenler ve prefab'lar. Bu hiyerarşiyi anlamak, motorla etkili bir şekilde çalışmak için gereklidir.
Scene, bir oyun seviyesi veya uygulama durumundaki tüm nesneleri içeren bir kapsayıcıdır. Her sahnenin kendine ait GameObjects, ışık kaynakları, kameralar ve ses kaynakları kümesi vardır. Sahneler arası geçiş SceneManager.LoadScene() ile yapılır.
GameObject, Unity'nin temel yapı taşıdır. Varsayılan olarak görsel temsili veya davranışı yoktur — sahne hiyerarşisinde boş bir düğümdür. Tüm davranış ve görünüm bileşenler aracılığıyla eklenir. Örneğin, GameObject'i görünür yapmak için MeshRenderer eklenir; fiziğe uyması için Rigidbody eklenir.
MonoBehaviour, Unity'deki tüm özel betikler için temel sınıftır. Bir yaşam döngüsü sağlar: Awake (nesne yüklendiğinde çağrılır), Start (ilk kareden önce), Update (her kare), FixedUpdate (her fizik adımı) ve OnDestroy (yok edildiğinde).
Her bileşen, GetComponent<T>() ile aynı GameObject üzerindeki diğer bileşenlerle etkileşime girebilir. Bu, modüler sistemler oluşturmayı sağlar: örneğin, Health bileşeni Movement bileşeninden bağımsız olabilir, ancak her ikisi de UnityEvent aracılığıyla olaylara yanıt verebilir.
Prefab, projede bir varlık olarak kaydedilmiş GameObject şablonudur. Prefab'daki değişiklikler, sahnelerdeki tüm örneklerine otomatik olarak uygulanır. Bu, Unity'deki merkezi yeniden kullanım mekanizmasıdır ve yinelemeleri hızlandırıp hataları azaltır.
Prefab'lar iç içe geçmeyi (Nested Prefabs) destekler: bir prefab, başka prefab'lar içerebilir ve bir hiyerarşi oluşturabilir. Örneğin, bir araba prefab'ı, her biri kendi bileşenleri ve ayarlarıyla tekerlek, motor ve gövde prefab'larını içerebilir.
C# ile temel bir karakter hareket bileşenine bakalım. Bu betik, bir nesneyi mevcut dönüşüne göre ileri doğru hareket ettirir ve kullanıcı girişini işler.
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() yöntemi her karede çağrılır. Input.GetAxis dikey girişi okur, SimpleMove hareketi fizikle uygular. CharacterController, çarpışma fiziği yazmaya gerek kalmadan çarpışmaları yöneten yerleşik bir Unity bileşenidir.
Çarpışmaları yönetmek ve hasar uygulamak için örnek betik:
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 yöntemi, bir GameObject başka bir nesneyle çarpıştığında fizik motoru tarafından çağrılır. Etiket karşılaştırması (CompareTag), çarpışmanın neyle olduğunu belirler. Bu yaklaşım, kodu değiştirmeden DamageHandler bileşeninin oyuncu, düşmanlar ve yok edilebilir nesneler için yeniden kullanılmasını sağlar.
Unity, sınırlı kaynaklara sahip mobil cihazlarda oyunları optimize etmek için özel araçlar sunar. Ana optimizasyon alanları arasında bellek yönetimi, draw call'ların azaltılması ve farklı ekran çözünürlüklerine uyum sağlama bulunur.
Mobil platformlar için Unity, Asset Bundles sunar — kaynakları ihtiyaç halinde yükleyen ve uygulamanın ilk boyutunu azaltan bir içerik paketleme sistemi. Bu, özellikle uygulama mağazası sınırlamaları nedeniyle tüm varlıkların aynı anda yüklenmesinin mümkün olmadığı, çok sayıda seviye veya karakter içeren oyunlar için önemlidir.
Unity Profiler, ADB (Android) veya USB (iOS) aracılığıyla gerçek bir cihazda CPU, GPU ve bellek kullanımını analiz etmeyi sağlar. Unity Documentation (2025) verilerine göre, mobil cihazlarda draw call'ları 100–300'e optimize etmek, orta segment cihazlarda istikrarlı 60 FPS sağlar.
Mobil oyunlar için Unity, dokunmatik kontrolleri, ivmeölçeri ve jiroskopu tek bir API altında soyutlayan Input System'i kullanır. Sanal joystick'ler, kaydırmalar ve dokunmalar, dokunma işleme kodu yazmadan Input Action Assets aracılığıyla yapılandırılır.
Unity'nin UI sistemi (uGUI), farklı ekran en-boy oranlarına otomatik olarak uyum sağlamak için Canvas Scaler'ı destekler. Scale With Screen Size modundaki Canvas Scaler bileşeni, tabletlerde ve akıllı telefonlarda düğmelerin ekran dışına çıkmamasını sağlar.
Unity'de mobil oyun derlemesi, Build Settings penceresi aracılığıyla yapılır. Android için Android SDK ve NDK gerekir; Unity, APK veya AAB'ye derlenen bir Gradle projesi oluşturur. iOS için Xcode gerekir — Unity, Apple aracılığıyla derlenen Objective-C/Swift sarmalayıcısına sahip bir Xcode projesi oluşturur.
IL2CPP, C# kodunu C++'a ve ardından yerel ARM koduna çeviren bir derleme seçeneğidir. Unity Benchmark (2024) verilerine göre IL2CPP, Mono'ya kıyasla iOS ve Android'de performansı %15–25 artırır, ancak derleme süresini ve ikili dosya boyutunu artırır.
Unity, oyun motoru pazarındaki ana alternatifler olan Unreal Engine ve Godot ile karşılaştırılır. Seçim, proje türüne, ekibin niteliklerine ve hedef platformlara bağlıdır.
| Kriter | Unity | Unreal Engine 5 | Godot 4 |
|---|---|---|---|
| Dil | C# | C++ / Blueprints | GDScript / C# |
| Grafik | Built-in / URP / HDRP | Nanite + Lumen | Özel renderleyici |
| Mobil optimizasyon | Mükemmel (mobil oyunların %70'i) | İyi (AAA taşıma) | İyi (hafif motor) |
| Giriş engeli | Düşük | Yüksek | Düşük |
| Lisans | Personal / Pro / Enterprise | %5 telif (1 milyon $'a kadar) | MIT (ücretsiz) |
Mobil oyunlar için Unity, sınırlı bilgi işlem gücüne sahip mobil GPU'lar için grafikleri optimize eden esnek render sistemi (URP — Universal Render Pipeline) sayesinde sektör standardı olmaya devam etmektedir. URP, render geçişi sayısını otomatik olarak azaltır ve GPU yükünü düşürmek için shader'ları toplar.
Unreal Engine 5 en iyi grafik kalitesini (geometri için Nanite, aydınlatma için Lumen) sunar ancak daha güçlü donanım ve daha fazla ekip deneyimi gerektirir. Godot, açık kaynak kodu ve küçük motor boyutuyla cezbeder ancak daha az hazır varlık ve daha küçük bir uzman pazarına sahiptir.
Unity, oyun geliştirme dışında mimari, otomotiv, perakende ve eğitim alanlarında aktif olarak kullanılmaktadır. Gerçek zamanlı 3D görselleştirme (RT3D), etkileşimli 3D sunumlar, simülatörler ve ürün yapılandırıcıları oluşturmayı sağlar.
Otomotiv endüstrisinde Unity, araçların dijital ikizlerini ve HMI (Human-Machine Interface) sistemlerini oluşturmak için kullanılır. Mercedes-Benz ve BMW, fiziksel bir prototip üretilmeden önce gösterge paneli ve multimedya sistemlerinin prototiplenmesi için Unity kullanır.
Perakendede Unity, ürün yapılandırıcılarında kullanılır: IKEA (sanal mobilya yerleştirme), Nike (ayakkabı kişiselleştirme) ve Audi (araç yapılandırıcı) — tüm bu projeler Unity üzerine inşa edilmiştir. Kullanıcı, gerçek zamanlı olarak renkleri, malzemeleri ve donanımı değiştirebilir ve sonucu 3D olarak görebilir.
Oyun dışı projeler için Unity özel araçlar sunar: AR Foundation (ARKit ve ARCore için), Pixyz Plugin (CAD model içe aktarma için) ve Unity Reflect (Revit BIM modelleriyle senkronizasyon için). Şirket, kurumsal müşteriler için bulut hizmetlerini içeren Unity Industry yönünü aktif olarak geliştirmektedir.
Sıkça sorulan sorular
Unity, kapsamlı dokümantasyonu, ücretsiz Unity Learn kursları ve devasa topluluğu sayesinde yeni başlayanlar için en erişilebilir oyun motorlarından biri olarak kabul edilir. Başlamak için C# temellerini bilmek ve bileşen mimarisi ilkelerini anlamak yeterlidir. Çoğu yeni başlayan, ilk oyununu 2–3 ay içinde oluşturur.
Evet, Unity tam bir 2D hattına sahiptir: Sprite Renderer, 2D Fizik (Box2D), kutucuklardan seviyeler oluşturmak için Tilemap ve sprite'ların iskelet animasyonu için 2D Animation. Hollow Knight ve Cuphead dahil birçok popüler 2D oyun Unity ile oluşturulmuştur. 2D araçları, eklenti yüklemeye gerek kalmadan motora entegre edilmiştir.
Unity Personal, yıllık geliri 200.000 $'a kadar olanlar için ücretsizdir. Unity Pro, geliştirici başına yıllık 2.040 $'dır ve gelişmiş profil oluşturma araçları, bulut derlemesi ve öncelikli destek içerir. Mobil geliştirme için Personal'ın işlevselliği çoğu bağımsız proje için yeterlidir.
Cocos2d, C++, Lua ve JavaScript'i destekleyen, basit 2D oyunlara odaklanmış bir 2D çerçevedir. Unity, düzenleyici, görsel araçlar ve 27 platform desteğine sahip tam teşekküllü bir 3D/2D motorudur. Cocos2d Asya'da hiperkäsü oyunlar için popülerdir, Unity ise her tür için evrensel bir seçimdir.
Evet, Unity, AR Foundation (ARKit + ARCore), XR Interaction Toolkit ve OpenXR aracılığıyla AR ve VR için yerleşik desteğe sahiptir. Half-Life: Alyx (teknik demo) ve VRChat gibi VR projeleri Unity ile oluşturulmuştur. Motor, Meta Quest, HTC Vive, Valve Index ve PlayStation VR dahil tüm büyük VR başlıklarını destekler.
Özet
Anahtar teslim bir mobil uygulama geliştireceğiz
IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.
Ayrıca okuyun