Eksen girdisi
- Oyun Geliştirme kursu
- Başlangıç
- Ders 44/83
- 4 dk
Input.GetAxis ile yatay ve dikey eksen girdisini öğrenirsin.
Eksen Girdisi Nedir?
Unity'de Input.GetAxis metodu, klavye tuşları veya oyun kolu analog çubuğundan gelen girdileri yumuşatılmış bir ondalık sayı (float) olarak okur. Bu değer genellikle -1.0f ile +1.0f arasındadır. Örneğin klavyede hiçbir tuşa basılmadığında 0 değeri üretilir.
float h = Input.GetAxis("Horizontal");
Debug.Log("Yatay eksen: " + h);Horizontal ve Vertical Eksenleri
Unity varsayılan olarak iki temel eksen tanımlar: "Horizontal" (A/D veya Sol/Sağ ok tuşları) ve "Vertical" (W/S veya Yukarı/Aşağı ok tuşları). Eğer yumuşatma olmadan doğrudan -1, 0 veya 1 değerlerini almak istersen Input.GetAxisRaw metodunu kullanabilirsin.
float v = Input.GetAxis("Vertical");
float rawH = Input.GetAxisRaw("Horizontal");Uygulama Eksen Değeri Okuma
Input.GetAxis("Horizontal") değerini float yatay değişkenine ata. Ardından yatay > 0 ise Debug.Log("Saga hareket"); yazdır.
Başlangıç kodu
using System;
public static class Input
{
public static float GetAxis(string axisName) => axisName == "Horizontal" ? 1.0f : 0.0f;
}
public static class Debug
{
public static void Log(object message) => Console.WriteLine(message);
}
public class Program
{
public static void Main()
{
// yatay eksenini oku ve 0'dan buyukse "Saga hareket" yazdir
}
}Örnek çözüm
using System;
public static class Input
{
public static float GetAxis(string axisName) => axisName == "Horizontal" ? 1.0f : 0.0f;
}
public static class Debug
{
public static void Log(object message) => Console.WriteLine(message);
}
public class Program
{
public static void Main()
{
float yatay = Input.GetAxis("Horizontal");
if (yatay > 0)
{
Debug.Log("Saga hareket");
}
}
}Beklenen çıktı
Saga hareket
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Input.GetAxis("Horizontal") çağrısı klavyede hiçbir tuşa basılmadığında hangi değeri döner?
- -1.0f
- 0.0f Doğru cevap
- 1.0f
- null
Açıklama: Herhangi bir yön tuşuna basılmadığında eksen değeri nötr durumda yani 0.0f olur.
2 Dikey Ekseni Oku
float dikey = Input.____("Vertical");
float dikey = Input.GetAxis("Vertical");
Açıklama: Eksen adından ondalık değer okumak için GetAxis metodu kullanılır.
3 Eksen ve Değer Eşleştirmesi
| Kavram | Anlamı |
|---|---|
Horizontal |
A/D veya Sol/Sağ ok tuşları ekseni |
Vertical |
W/S veya Yukarı/Aşağı ok tuşları ekseni |
Input.GetAxisRaw |
Yumuşatma olmadan -1, 0 veya 1 döner |
0.0f |
Tuşa basılmadığında eksenin nötr değeri |