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

Unity'de Input.GetButton() ve Input.GetButtonDown() Fonksiyonları: Oyun Kontrolü İçin Kapsamlı Rehber

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

Merhaba Unity geliştiricileri! Bu yazıda, Unity oyun motorunda oyuncuların girişlerini (input) algılamak için kullanılan iki önemli fonksiyondan, Input.GetButton() ve Input.GetButtonDown() fonksiyonlarından bahsedeceğiz. Bu fonksiyonlar, oyunlarınızda tuşlara basma, mouse tıklamaları ve diğer girişleri nasıl algılayacağınızı anlamanız için temel oluşturur.

Input.GetButton(): Sürekli Basılı Tutma Algılama


Input.GetButton() fonksiyonu, bir butona basılı tutulduğu sürece true değerini döndürür. Buton bırakıldığında ise false değerini döndürür. Bu fonksiyon, sürekli bir eylemin gerçekleştirilmesi gereken durumlarda oldukça kullanışlıdır. Örneğin, bir karakteri hareket ettirmek için yön tuşlarını kullanıyorsanız, bu fonksiyon ideal bir seçimdir.
using UnityEngine;

public class PlayerMovement : MonoBehaviour
{
public float speed = 5f;

void Update()
{
float horizontalInput = Input.GetAxis("Horizontal");
float verticalInput = Input.GetAxis("Vertical");

Vector3 movement = new Vector3(horizontalInput, 0f, verticalInput) * speed * Time.deltaTime;
transform.Translate(movement);
}
}


Yukarıdaki kodda, Input.GetAxis("Horizontal") ve Input.GetAxis("Vertical") fonksiyonları yatay ve dikey hareket için girişleri alır. Bu fonksiyonlar, analog girişler (örneğin, joystick) için de kullanılabilir. Time.deltaTime ise, hareketin kare hızından bağımsız olmasını sağlar.

Input.GetButton() Örnek Kullanımı:


Bir karakterin sürekli olarak ileri doğru koşmasını sağlamak için Input.GetButton("Jump") fonksiyonunu kullanabilirsiniz. Eğer "Jump" butonuna basılı tutulursa, karakter koşmaya devam eder.
if (Input.GetButton("Jump"))
{
// Karakter koşuyor
}

Input.GetButtonDown(): Butona Basıldığında Tek Seferlik Algılama


Input.GetButtonDown() fonksiyonu ise, bir butona ilk kez basıldığında true değerini döndürür. Butona tekrar basıldığında veya basılı tutulduğunda false değerini döndürür. Bu fonksiyon, tek seferlik eylemler için idealdir. Örneğin, atlama, ateş etme veya bir envanter menüsünü açma gibi.
using UnityEngine;

public class PlayerShooting : MonoBehaviour
{
public GameObject bulletPrefab;
public Transform bulletSpawnPoint;

void Update()
{
if (Input.GetButtonDown("Fire1"))
{
Instantiate(bulletPrefab, bulletSpawnPoint.position, bulletSpawnPoint.rotation);
}
}
}


Bu kodda, Input.GetButtonDown("Fire1") fonksiyonu, "Fire1" butonuna (genellikle sol mouse tuşu) basıldığında bir mermi örneği oluşturur. Her basışta sadece bir mermi oluşturulur.

Input.GetButtonDown() Örnek Kullanımı:


Bir karakterin atlamasını sağlamak için Input.GetButtonDown("Jump") fonksiyonunu kullanabilirsiniz. Her atlama için sadece bir kez çalışır.
if (Input.GetButtonDown("Jump"))
{
// Karakter atlıyor
}

Input Manager'ı Kullanma


Bu fonksiyonları kullanabilmek için, Unity'nin Input Manager'ını kullanmanız gerekir. Edit > Project Settings > Input'a giderek, "Horizontal", "Vertical", "Jump", "Fire1" gibi girişleri tanımlayabilir veya kendi özel girişlerinizi oluşturabilirsiniz.

Özet


Input.GetButton() ve Input.GetButtonDown() fonksiyonları, Unity oyunlarında girişleri yönetmek için güçlü araçlardır. Input.GetButton() sürekli basılı tutma durumlarını, Input.GetButtonDown() ise tek seferlik basmaları algılar. Doğru fonksiyonu seçmek, oyun mekaniklerinizin doğru şekilde çalışması için önemlidir. Input Manager'ı kullanarak, oyununuz için özelleştirilmiş giriş kontrolleri oluşturabilirsiniz.

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