Unity'de Input.GetButton() ve Input.GetButtonDown() Fonksiyonları: Oyun Kontrolü İçin Kapsamlı Rehber
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.
Yorumlar (0)
İlk yorumu siz yapın!