CodeBlanks Logo Icon CodeBlanks

Input sınıfı

Input.GetKey ve Input.GetKeyDown ile klavye girdisini öğrenirsin.

Klavye Girdisi ve Input Sınıfı

Unity'de klasik girdi yönetimi için Input sınıfı kullanılır. Input.GetKey fonksiyonu, oyuncu belirtilen tuşa basılı tuttuğu sürece her karede true döner. Sürekli koşma veya ateş etme gibi basılı tutma gerektiren eylemlerde bu metot tercih edilir.

if (Input.GetKey(KeyCode.W))
{
    Debug.Log("İleri yürünüyor");
}

Tek Seferlik Tuş Vuruşu: GetKeyDown

Input.GetKeyDown, oyuncu tuşa ilk bastığı tek bir karede true döner ve parmağını çekip tekrar basana kadar bir daha tetiklenmez. Zıplama, menü açma veya tekli ateş gibi anlık eylemler için idealdir. Benzer şekilde Input.GetKeyUp ise tuş bırakıldığı anda tek bir karede tetiklenir.

if (Input.GetKeyDown(KeyCode.Space))
{
    Debug.Log("Zıplama tetiklendi!");
}

Uygulama Klavye Kontrolü Yaz

Karakterin zıplama girdisini kontrol et. Input.GetKeyDown(KeyCode.Space) doğruysa Debug.Log("Ziplama"); çağrısı yap.

Başlangıç kodu

Player.cs
using System;

public enum KeyCode { Space, Escape }

public static class Input
{
    public static bool GetKeyDown(KeyCode key) => key == KeyCode.Space;
}

public static class Debug
{
    public static void Log(object message) => Console.WriteLine(message);
}

public class Program
{
    public static void Main()
    {
        // Space tusuna basildiginda Debug.Log ile "Ziplama" yazdir
    }
}

Örnek çözüm

Player.cs
using System;

public enum KeyCode { Space, Escape }

public static class Input
{
    public static bool GetKeyDown(KeyCode key) => key == KeyCode.Space;
}

public static class Debug
{
    public static void Log(object message) => Console.WriteLine(message);
}

public class Program
{
    public static void Main()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            Debug.Log("Ziplama");
        }
    }
}

Beklenen çıktı

Ziplama

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Oyuncunun W tuşunu basılı tutup tutmadığını her karede sürekli kontrol etmek için hangi metot kullanılır?

  • Input.GetButton("Horizontal")
  • Input.GetKeyDown(KeyCode.W)
  • Input.GetKey(KeyCode.W) Doğru cevap
  • Input.GetKeyUp(KeyCode.W)

Açıklama: Input.GetKey tuşa basılı tutulduğu her karede true döner; GetKeyDown ise yalnızca basıldığı ilk karede true döner.

2 Zıplama Tuşunu Yakala

Soru
if (Input.____(KeyCode.Space))
Cevap
if (Input.GetKeyDown(KeyCode.Space))

Açıklama: Zıplama gibi anlık eylemler için tuşa ilk basıldığı kareyi yakalayan GetKeyDown metodu kullanılır.

3 Tuş Metotları Eşleştirmesi

Kavram Anlamı
Input.GetKey Tuş basılı tutulduğu sürece true döner
Input.GetKeyDown Tuşa basıldığı ilk karede true döner
Input.GetKeyUp Tuş bırakıldığı karede true döner
KeyCode.Space Boşluk tuşunun Unity kodu

Başlangıç bölümündeki tüm dersler