Özet - Input
- Oyun Geliştirme kursu
- Başlangıç
- Ders 48/83
- 4 dk
Input kullanımını bir özet görevle pekiştirirsin.
Girdi Yönetimi Özeti
Unity'de girdi yönetimi oyunun oynanış hissini doğrudan belirler. Tuş durumları için Input.GetKey, Input.GetKeyDown ve Input.GetKeyUp kullanılırken, analog ve yön hareketleri için Input.GetAxis tercih edilir. Fare tıklamaları ve ekran koordinatları ise GetMouseButton ve mousePosition üzerinden okunur.
if (Input.GetKeyDown(KeyCode.Space)) Jump();
float h = Input.GetAxis("Horizontal");Uygulama Kapsamlı Girdi Kontrolcüsü
Karakter girdi mantığını tamamla: Input.GetKeyDown(KeyCode.Space) doğruysa Debug.Log("Zipla"); yazdır. Ardından Input.GetAxis("Horizontal") değerini yatay değişkenine ata ve Debug.Log("Eksen: " + yatay); yazdır.
Başlangıç kodu
using System;
public enum KeyCode { Space, Escape }
public static class Input
{
public static bool GetKeyDown(KeyCode key) => key == KeyCode.Space;
public static float GetAxis(string axis) => 1.0f;
}
public static class Debug
{
public static void Log(object message) => Console.WriteLine(message);
}
public class Program
{
public static void Main()
{
// Space kontrolu yap ve "Zipla" yazdir
// Horizontal eksenini oku ve "Eksen: " ile yazdir
}
}Örnek çözüm
using System;
public enum KeyCode { Space, Escape }
public static class Input
{
public static bool GetKeyDown(KeyCode key) => key == KeyCode.Space;
public static float GetAxis(string axis) => 1.0f;
}
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("Zipla");
}
float yatay = Input.GetAxis("Horizontal");
Debug.Log("Eksen: " + yatay);
}
}Beklenen çıktı
Zipla Eksen: 1
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Aşağıdakilerden hangisi bir tuşa basılı tutulduğunda değil, yalnızca ilk basıldığı karede true döner?
- Input.GetKey
- Input.GetKeyDown Doğru cevap
- Input.GetAxis
- Input.mousePosition
Açıklama: GetKeyDown yalnızca tuşa basıldığı ilk karede true döner; GetKey ise basılı tutulduğu sürece true dönmeye devam eder.
2 Özet Boşluk Doldurma
if (Input.____(KeyCode.Escape))
if (Input.GetKeyDown(KeyCode.Escape))
Açıklama: Menü açma veya oyundan çıkış tuşuna tek seferlik basışı yakalamak için GetKeyDown kullanılır.
3 Tüm Girdi Kavramları
| Kavram | Anlamı |
|---|---|
Input.GetKeyDown |
Tuşa ilk basıldığı kareyi yakalar |
Input.GetAxis |
Eksen değerini float olarak döner |
Input.GetMouseButton |
Fare butonunun basılma durumunu okur |
new Vector3(x, 0, z) |
Eksenlerden hareket vektörü üretir |