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

Unity'de IDragHandler ve OnDrag() Metodu ile Sürükleme İşlemleri

Paylaşan: Unity Eğitim 07 September 2025 4 dakika okuma 53 görüntülenme

Merhaba Unity geliştiricileri! Bu yazıda, Unity oyun motorunda nesneleri sürükleme ve bırakma işlemini gerçekleştirmek için kullanılan IDragHandler arayüzü ve OnDrag() metodu hakkında detaylı bilgi vereceğiz. Sürükle ve bırak, oyunlarda ve uygulamalarda interaktifliği artırmak için oldukça yaygın kullanılan bir özelliktir. Bu rehber, bu özelliği Unity'de nasıl uygulayacağınızı adım adım açıklayacak ve örneklerle destekleyecektir.

IDragHandler Arayüzü


IDragHandler, Unity'nin Event System'i tarafından kullanılan bir arayüzdür. Bu arayüz, bir oyun nesnesinin sürükleneceğini belirtmek ve sürükleme işlemi sırasında gerçekleşecek olayları yönetmek için kullanılır. IDragHandler arayüzünü kullanan bir nesne, fare veya dokunmatik girişlerle sürüklenecektir.

OnDrag() Metodu


IDragHandler arayüzünün en önemli metodu OnDrag() metodudur. Bu metod, nesne sürükleneceği zaman tetiklenir ve sürükleme işlemi boyunca sürekli olarak çağrılır. OnDrag() metodu, PointerEventData adında bir parametre alır. Bu parametre, sürükleme işlemiyle ilgili önemli bilgiler içerir, örneğin:

  • position: Fare veya dokunmatik girişin ekran koordinatları.

  • delta: Önceki kareye göre fare veya dokunmatik girişin konumundaki değişim.

  • pressPosition: Sürükleme işleminin başladığı nokta.


OnDrag() metodunda, sürükleme işlemine göre nesnenin konumunu güncellemek gibi işlemler yapılır. Aşağıda basit bir örnek verilmiştir:

using UnityEngine;
using UnityEngine.EventSystems;

public class DragObject : MonoBehaviour, IDragHandler
{
public void OnDrag(PointerEventData eventData)
{
transform.position = eventData.position;
}
}


Bu kod, sürüklediğiniz nesnenin fare imlecini takip etmesini sağlar. Ancak, bu basit yaklaşım, dünya uzayında doğru konumlandırma için ek işlemler gerektirebilir. Camera.main.ScreenToWorldPoint() metodunu kullanarak ekran koordinatlarını dünya koordinatlarına dönüştürmeniz gerekebilir.

Gelişmiş Kullanım Örnekleri


Sürüklemeyi Sınırlama


Nesnenin belirli bir alanda sürükleneceği şekilde sınırlamalar eklemek isteyebilirsiniz. Bunun için, OnDrag() metodunda nesnenin konumunu kontrol edip, sınırların dışına çıkmasını önleyebilirsiniz.

Sürükleme Hızını Kontrol Etme


eventData.delta değerini kullanarak sürükleme hızını kontrol edebilirsiniz. Örneğin, daha yavaş bir sürükleme işlemi için delta değerini ölçekleyebilirsiniz.

Sürükleme İşlemini Başka Nesnelere Etki Ettirme


Sürükleme işlemini diğer oyun nesneleriyle etkileşim kurmak için kullanabilirsiniz. Örneğin, bir nesneyi diğer bir nesnenin üzerine sürüklediğinizde, bir olay tetikleyebilirsiniz.

Event System Ayarları


Sürükle ve bırak işlemlerinin düzgün çalışması için, Unity'nin Event System'inin doğru şekilde ayarlandığından emin olmalısınız. Event System'i, oyun sahnenizde bulunan bir Canvas nesnesinin altına eklenmelidir. Ayrıca, sürüklenecek nesnelerin Event System'i tarafından algılanabilir olduğundan emin olunmalıdır. Bunun için, nesnelerin Graphic Raycaster ile etkileşim kurabildiğinden emin olmalısınız.

Bu video, konuyu daha iyi anlamanıza yardımcı olacaktır.

Sonuç


IDragHandler arayüzü ve OnDrag() metodu, Unity'de sürükle ve bırak mekaniğini uygulamanın güçlü ve esnek bir yoludur. Bu rehberde verilen örnekler ve açıklamalar, kendi oyunlarınızda ve uygulamalarınızda bu mekaniği nasıl kullanabileceğinizi anlamanıza yardımcı olacaktır. Unutmayın ki, OnDrag() metodunun içindeki kod, oyununuzun ihtiyaçlarına göre özelleştirilebilir ve geliştirilebilir.

🧠 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!