CodeBlanks Logo Icon CodeBlanks

Özet - Input

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

Player.cs
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

Player.cs
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

Soru
if (Input.____(KeyCode.Escape))
Cevap
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

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