Yeni Input System
- Oyun Geliştirme kursu
- Başlangıç
- Ders 46/83
- 4 dk
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.inputsystemGirdi 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
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
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ı
string paketAdi = "com.unity.____";
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 |