CodeBlanks Logo Icon CodeBlanks

Yeni Input System

Eski ve yeni Input System farklarını kısaca öğrenirsin.

Klasik ve Yeni Input System

Unity'de uzun yıllar kullanılan Input sınıfı (klasik girdi yöneticisi) basit projeler için hızlıdır ancak çoklu cihaz, gamepad ve tuş yeniden eşleme (re-binding) desteğinde yetersiz kalır. Unity bu eksikleri gidermek için modern ve modüler Input System paketini geliştirmiştir. Yeni sistem Package Manager üzerinden projeye eklenir.

// Yeni sistem Package Manager ile yüklenir:
// com.unity.inputsystem

Girdi Eylemleri (Input Actions)

Yeni Input System'ın kalbinde Input Actions yer alır. Kodda doğrudan tuş adı (örneğin W tuşu) kontrol etmek yerine soyut bir eylem (örneğin "Move" veya "Jump") tanımlanır. Bu sayede aynı eyleme klavye, gamepad veya dokunmatik ekran bağlamak kod değiştirmeden mümkün olur.

// Eylem tabanlı yaklaşım:
// "Jump" eylemi hem Space hem Gamepad A tuşuna bağlanabilir.

Uygulama Girdi Eylemi Durum Kontrolü

Simüle edilmiş InputAction nesnesinin IsTriggered() metodu doğruysa Debug.Log("Eylem tetiklendi"); yazdır.

Başlangıç kodu

Player.cs
using System;

public class InputAction
{
    public string Name { get; set; }
    public bool IsTriggered() => true;
}

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

public class Program
{
    public static void Main()
    {
        InputAction jumpAction = new InputAction { Name = "Jump" };
        // jumpAction tetiklenmisse "Eylem tetiklendi" yazdir
    }
}

Örnek çözüm

Player.cs
using System;

public class InputAction
{
    public string Name { get; set; }
    public bool IsTriggered() => true;
}

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

public class Program
{
    public static void Main()
    {
        InputAction jumpAction = new InputAction { Name = "Jump" };
        if (jumpAction.IsTriggered())
        {
            Debug.Log("Eylem tetiklendi");
        }
    }
}

Beklenen çıktı

Eylem tetiklendi

Soru ve cevaplar

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

1 Unity'nin modern Input System paketini projeye dahil etmek için hangi araç kullanılır?

  • Console Penceresi
  • Package Manager Doğru cevap
  • Hierarchy Penceresi
  • Build Settings

Açıklama: Yeni Input System bağımsız bir paket olduğundan Window > Package Manager menüsünden yüklenir.

2 Yeni Paket Adı

Soru
string paketAdi = "com.unity.____";
Cevap
string paketAdi = "com.unity.inputsystem";

Açıklama: Unity'nin yeni girdi paketi Package Manager'da com.unity.inputsystem tanımlayıcısıyla bulunur.

3 Sistem Karşılaştırması

Kavram Anlamı
Klasik Input GetKey ve GetAxis kullanan sistem
Package Manager Input System paketinin yüklendiği yer
Input Action Tuşları eylemlerle eşleyen yapı
Re-binding Oyun içi tuş atamalarını değiştirme

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