Unity Eğitim
Dersler
Forum Sınav Merkezi Premium 💎
C# Dersleri

Unity ile Mobil Oyun Geliştirme: Dokunmatik Kontrolleri Ekleyin

Paylaşan: Unity Eğitim 30 August 2025 3 dakika okuma 71 görüntülenme

Merhaba Unity geliştiricileri! Bu yazıda, Unity oyun motorunu kullanarak mobil oyunlarınıza dokunmatik kontroller eklemeyi adım adım öğreneceğiz. Mobil oyun geliştirmede kullanıcı deneyimini en üst düzeye çıkarmak için dokunmatik kontrollerin doğru şekilde entegre edilmesi çok önemlidir. Bu rehber, farklı kontrol şemaları oluşturmaktan performans optimizasyonuna kadar geniş bir yelpazeyi kapsamaktadır.

1. Projenizi Hazırlama


Öncelikle, yeni bir Unity projesi oluşturun. Proje ayarlarınızda, platform olarak Android veya iOS'u seçmeyi unutmayın. Bu, projenizin mobil cihazlarda çalışmasını sağlayacaktır.

2. Dokunma Olaylarını Algılama


Unity'de dokunma olaylarını algılamak için Input.GetTouch fonksiyonunu kullanırız. Bu fonksiyon, ekranda gerçekleşen dokunma olaylarını (basma, sürükleme, kaldırma) tespit etmemizi sağlar. Aşağıdaki kod örneği, bir parmağın ekrana dokunduğunu ve parmağın konumunu tespit etmeyi göstermektedir:
void Update() {
if (Input.touchCount > 0) {
Touch touch = Input.GetTouch(0);
Vector2 touchPosition = Camera.main.ScreenToWorldPoint(touch.position);
// touchPosition değişkeni, dokunulan noktanın dünya koordinatlarını içerir.
}
}

Açıklama: Input.touchCount, ekranda aktif dokunma sayısını verir. Input.GetTouch(0) ise ilk dokunmayı temsil eder. Camera.main.ScreenToWorldPoint fonksiyonu, ekran koordinatlarını oyun dünyasının koordinatlarına dönüştürür.

3. Farklı Kontrol Şemaları


3.1. Basit Dokunma Kontrolü


Oyuncunun ekrana dokunmasıyla karakterin hareket etmesini sağlamak için basit bir dokunma kontrolü oluşturabiliriz. Dokunma konumuna göre karakterin hareket yönünü belirleriz.
public class SimpleTouchControl : MonoBehaviour {
public float speed = 5f;
void Update() {
if (Input.touchCount > 0) {
Touch touch = Input.GetTouch(0);
Vector3 direction = Camera.main.ScreenToWorldPoint(touch.position) - transform.position;
direction.z = 0; // Z eksenini sıfırlayarak 2 boyutlu hareket sağlarız.
transform.position += direction.normalized * speed * Time.deltaTime;
}
}
}

3.2. Sanal Joystick


Daha gelişmiş bir kontrol mekanizması için sanal bir joystick kullanabiliriz. Bunun için, oyun sahnesine iki adet boş GameObject ekleyelim: biri joystick arka planı, diğeri joystick başlığı için. Başlığı, arka planın içinde hareket etmesini sağlayarak joystick işlevselliğini oluşturabiliriz.

Bu örnekte, joystick kodunun detaylı açıklamasını kısaltıyoruz. Ancak, temel mantık, başlığın dokunma konumuna göre arka plan içinde hareket ettirilmesi ve bu hareketin karakterin yönünü ve hızını belirlemesidir. [YOUTUBE_VIDEO_BURAYA] Bu konuda detaylı bir video rehberi izleyebilirsiniz.

3.3. Dokunma Butonları


Ekrana yerleştirilen butonlar ile karakterin hareketini, atış yapmasını veya diğer eylemlerini kontrol edebiliriz. Unity'nin UI sistemini kullanarak butonlar oluşturabilir ve onlara C# scriptleri ekleyerek fonksiyonlar atayabiliriz. Butonlara tıklandığında, ilgili eylemleri gerçekleştiren fonksiyonlar çağrılır.

4. Performans Optimizasyonu


Mobil cihazlarda performans önemlidir. Aşırı hesaplama işlemlerinden kaçınmak ve gereksiz güncellemeleri engellemek için aşağıdaki ipuçlarını kullanın:

  • Event Trigger kullanımı: Input.GetTouch yerine, UI elementlerine Event Trigger bileşeni ekleyerek, sadece butonlara tıklama olaylarını dinleyin.

  • Poollama: Çok sayıda GameObject oluşturmanız gerekiyorsa, Object Pooling tekniğini kullanarak performansı artırabilirsiniz.

  • Gereksiz hesaplamaları azaltın: Kodunuzda gereksiz hesaplamalar varsa, bunları optimize edin.


Sonuç


Bu rehberde, Unity ile mobil oyunlara dokunmatik kontroller eklemeyi temel seviyeden başlayarak, daha gelişmiş tekniklere kadar ele aldık. Uygulamada karşılaşabileceğiniz sorunları çözmek ve daha fazla bilgi edinmek için Unity'nin dokümanlarını ve çevrimiçi kaynakları inceleyebilirsiniz. Unutmayın ki, oyununuzun kontrol şemasını oyunun türüne ve hedef kitlenize göre dikkatlice tasarlamanız önemlidir.

🧠 Ders Sonu Değerlendirme Testi

Dersi tamamladıktan sonra bilgilerinizi test edin ve ekstra puanlar kazanın.

🔥 +50 XP Ödül
🔒

Sınava Katılmak İçin Giriş Yapın

Bu ders sonu testini çözebilmek, bilginizi test edip **+50 XP** kazanmak ve **Sınav Şampiyonu** rozetinin kilidini açmak için üye girişi yapmalısınız.

Yorumlar (0)

Yorum yazabilmek ve derslere katkıda bulunabilmek için giriş yapmalısınız.

İlk yorumu siz yapın!