Unity Fareden Tıklama Verilerini Almak

ücretsiz unity eğitim serisi

Unity ile mouse click yani fare ile tıklama olaylarının nasıl gerçekleştirildiğini ve sahnedeki objelere tıklama olaylarını anlatacağım. Input sınıfının GetMouseButtonDown, GetMouseButtonUp ve GetMouseButton fonksiyonları yardımıyla fare üzerindeki tuşlara tıklayıp tıklanmadığını anlayabiliriz. Ayrıca Monobehavior sınıfının bir fonksiyonu olan OnMouseDown fonksiyonu da objeye tıklanıp tıklanmadığının anlaşılmasında bize yardımcı olabilir.

Unity Mouse Tuşlarından Veri Almak

Input sınıfının GetMouseButtonDown fonksiyonunu Update fonksiyonu içinde kullanarak mouse üzerindeki sol sağ ve orta tuşlarına basılıp basılmadığını anlayabiliriz. Bu fonksiyon tuşa ilk basıldığı zaman bir defa çalışacaktır. Aşağıdaki örnekte 0 sol mouse tuşunu, 1 sağ mouse tuşunu, 2 ise orta mouse tuşunu temsil ediyor.

using UnityEngine;

public class ExampleClass : MonoBehaviour
{
    void Update()
    {
        if (Input.GetMouseButtonDown(0))
            Debug.Log("Sol mouse butona bastın.");

        if (Input.GetMouseButtonDown(1))
            Debug.Log("Sağ mouse butona bastın.");

        if (Input.GetMouseButtonDown(2))
            Debug.Log("Orta mouse butona bastın.");
    }
}

Input sınıfının GetMouseButton fonksiyonu da önceki fonksiyona benzer olarak Update fonksiyonu içinde kullanıldığında mouse üzerindeki sol sağ ve orta tuşlarına basılıp basılmadığını anlayabiliriz. Bu fonksiyon tuşa basılı tutuldukça çalışacaktır. Yine benzer olarak aşağıdaki örnekte 0 sol mouse tuşunu, 1 sağ mouse tuşunu, 2 ise orta mouse tuşunu temsil ediyor.

void Update()
{
    if (Input.GetMouseButton(0))
        Debug.Log("Sol mouse butona basıyorsun.");

    if (Input.GetMouseButton(1))
        Debug.Log("Sağ mouse butona basıyorsun.");

    if (Input.GetMouseButton(2))
        Debug.Log("Orta mouse butona basıyorsun.");
}

Input sınıfının GetMouseButtonUp fonksiyonu ise bir tuş basıldıktan sonra bırakıldığında çalışır.

void Update()
{
    if (Input.GetMouseButtonUp(0))
        Debug.Log("Sol mouse butona bıraktın.");

    if (Input.GetMouseButtonUp(1))
        Debug.Log("Sağ mouse butonu bıraktın.");

    if (Input.GetMouseButtonUp(2))
        Debug.Log("Orta mouse butona bıraktın.");
}

Oyun İçinde Bir Objeye Tıklanıldığını Anlamak

Oyun içinde bir objeye tıklanıldığını anlamak için MonoBehavior sınıfı fonksiyonlarından OnMouseDown fonksiyonunu kullanabiliriz. Tıklanılacak olan objenin bir collider’a sahip olması ve aşağıdaki kodun yer aldığı bir c# scriptinin objeye eklenmiş olması gerekmektedir. Monobehavior diğer fonksiyonları hakkında daha fazla bilgi almak için Monobehavior Sınıfı Temel Fonksiyonları yazısını ve collider ve çarpışmalar hakkında daha fazla bilgi almak için Objelerin Çarpışma Kontrolü (Collider, Collision) adlı yazıyı okuyabilirsiniz.

private void OnMouseDown()
{
    Debug.Log(gameObject.name + " tıkladınız");
}

 

Ayrıca klavyeden veri alma işlemlerinin anlatıldığı Klavyeden Veri Almak adlı yazıyı da okuyabilirsiniz.

Unity Ders Listesini görüntüleyin.