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

Unity Input.GetKeyUp() Metodu ile Tuş Bırakma Olaylarını Yakalama

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

Merhaba Unity geliştiricileri! Bu yazıda, Unity oyun motorunda sık kullanılan bir metot olan Input.GetKeyUp() metodunu detaylı bir şekilde inceleyeceğiz. Bu metot, oyuncunun bir tuşu bıraktığı anda tetiklenen olayları yönetmemizi sağlar. Input.GetKeyDown() metodunun aksine, tuşun basılı tutulması süresince değil, yalnızca tuş bırakıldığında bir kerelik işlem yapmamızı garanti eder.

Input.GetKeyUp() Metodunun Temelleri


Input.GetKeyUp() metodu, Unity'nin Input sınıfının bir üyesidir. Parametre olarak bir KeyCode enum değerini alır ve bu tuşun bırakılıp bırakılmadığını boolean bir değer olarak döndürür. Tuş bırakıldıysa true, bırakılmadıysa false döndürür.

Kod Örneği: Basit Kullanım


using UnityEngine;

public class GetKeyUpExample : MonoBehaviour
{
void Update()
{
if (Input.GetKeyUp(KeyCode.Space))
{
Debug.Log("Boşluk tuşu bırakıldı!");
}
}
}


Bu basit örnekte, her Update() çağrısında Input.GetKeyUp(KeyCode.Space) fonksiyonu kontrol edilir. Eğer oyuncunun boşluk tuşu bırakılmışsa, konsola "Boşluk tuşu bırakıldı!" mesajı yazdırılır. Update() fonksiyonunun her karede çalıştığını unutmayın, bu nedenle tuş bırakıldığında sadece bir kere mesaj yazdırılır.

Input.GetKeyUp() ile Daha Karmaşık Senaryolar


Input.GetKeyUp() metodu, basit örneklerin ötesinde daha karmaşık oyun mekaniklerinin oluşturulmasında da kullanılabilir. Örneğin, bir atlama mekaniği oluşturabiliriz:

Kod Örneği: Atlama Mekaniği


using UnityEngine;

public class JumpMechanic : MonoBehaviour
{
public float jumpForce = 10f;
private Rigidbody rb;

void Start()
{
rb = GetComponent<Rigidbody>();
}

void Update()
{
if (Input.GetKeyUp(KeyCode.Space) && isGrounded())
{
rb.AddForce(Vector3.up * jumpForce, ForceMode.Impulse);
}
}

bool isGrounded()
{
// Yer kontrolü için basit bir örnek. Daha gelişmiş yer kontrolü için raycast kullanın.
return transform.position.y < 1f;
}
}


Bu örnekte, oyuncunun boşluk tuşunu bırakması ve yerdeyse (isGrounded() fonksiyonu ile kontrol edilir) bir yukarı doğru kuvvet uygulanır. isGrounded() fonksiyonu bu örnekte basitleştirilmiş bir yer kontrolü yapmaktadır. Gerçekçi bir oyun için raycast kullanarak daha hassas bir yer kontrolü uygulamanız önerilir.

Farklı Tuşlar ve Input Manager


Input.GetKeyUp() metodu, sadece KeyCode enum değerlerini değil, aynı zamanda Input Manager'da tanımladığınız özelleştirilmiş tuşları da destekler. Input Manager'ı kullanarak, farklı platformlarda farklı tuş atamaları yapabilirsiniz.

Input Manager Kullanımı


Input Manager'ı Unity editöründe Edit > Project Settings > Input Manager yolunu izleyerek açabilirsiniz. Burada yeni tuş atamaları tanımlayabilir veya var olanları düzenleyebilirsiniz. Ardından, kodunuzda bu yeni tuşları kullanabilirsiniz.

Önemli Notlar


Performans: Input.GetKeyUp() metodu, her Update() çağrısında kontrol edildiği için, çok sayıda tuş kontrolü yapıyorsanız performans düşüşüne neden olabilir. Performansı optimize etmek için, gereksiz kontrol işlemlerini azaltın veya daha performanslı yöntemler kullanın.

Input System (Yeni): Unity'nin yeni Input Sistemi, daha esnek ve performanslı bir giriş yönetimi sunar. Yeni projelerde Input Sistemini kullanmanızı öneririz. Ancak, eski projelerde Input.GetKeyUp() metodu hala kullanılabilir.

Bu yazıda, Input.GetKeyUp() metodunun temel kullanımını ve bazı örneklerini inceledik. Bu metot, oyunlarınıza etkileşim katmak için güçlü bir araçtır. Farklı senaryolarda nasıl kullanılacağını keşfetmek için deneyler yapmanızı ve Input Manager'ı kullanarak özelleştirme yapmanızı öneririm. [YOUTUBE_VIDEO_BURAYA]

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