Merhaba dostlar şimdi sizlere klavye üzerinden nasıl tuş ataması yapabileceğinizden bahsedicem.
Klavye üzerinden iki farklı yolla tuş ataması yapabiliriz ve bunun için gerçekleştireceğimiz işleme göre bilmemiz gereken üç farklı komut var. Peki ne bunlar? Hemen bahsedelim.
GetKey: Tuş basılı kaldığı süre boyunca çalışır.
GetKeyDown: Tuşa bastığınızda bir kere çalışır.
GetKeyUp: Basılı tuşu bıraktığınızda bir kere çalışır.
Örnek verecek olursak:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class TusAtama : MonoBehaviour
{
void Update ()
{
//GetKey komutu için.
if (Input.GetKey(KeyCode.A))
{
print(" Tuş basılı tutuluyor. ");
}
//GetKeyDown komutu için.
if (Input.GetKeyDown(KeyCode.S))
{
print(" Tuşa basıldı. ");
}
//GetKeyUp komutu için.
if (Input.GetKeyUp(KeyCode.D))
{
print(" Tuş bırakıldı. ");
}
}
}
Yukarıda ki örnekte de gördüğünüz gibi GetKey için "A", GetKeyDown için "S", GetKeyUp için "D" tuşlarını atayıp konsola yazı yazdırarak işlem kontrolünü sağlamış olduk. Tabii siz konsola yazı yazdırmak yerine kendi istediğiniz işlemi yaptırabilirsiniz bunun haricinde kendi tuşunuzu belirlemek için de KeyCode kısmını değiştirmeniz gerekmekte.
Örnek: A tuşu için "KeyCode.A", Boşluk tuşu için "KeyCode.Space", TAB tuşu için "KeyCode.Tab" gibi...
Buraya kadar her şeyi anladığınızı düşünüp devamında sizlere ikinci bir yolla nasıl tuş atayabileceğinizi anlatacağım. Az önce bahsettiğim şekilde yine bilmeniz gereken ve aynı işlevlere sahip üç komut daha var.
GetButton: Tuş basılı kaldığı süre boyunca çalışır.
GetButtonDown: Tuşa bastığınızda bir kere çalışır.
GetButtonUp: Basılı tuşu bıraktığınızda bir kere çalışır.
Bu komutlar ile nasıl tuş atayacağınızdan bahsedecek olursak:
Öncelikle Unity ara yüzünde sol üstten Edit > Project Settings > Input kısmına geliyoruz ve yeni giriş ataması yapıyoruz.
Resimde gördüğünüz üzere Name kısmına girişimin adını ve Positive Button kısmına da girişime atamak istediğim tuşu yazarak Tus 1, Tus 2, Tus 3 adında üç farklı yeni giriş oluşturdum.
Not:Merak ettiğiniz veya karşılığını bulamadığınız tuş isimlerine buradan ulaşabilirsiniz.
Daha sonra bu oluşturduğum girişlere aşağıdaki şekilde erişim sağlıyorum.
public class TusAtama : MonoBehaviour
{
void Update ()
{
//GetButton komutu için.
if (Input.GetButton("Tus 1"))
{
print(" Tuş basılı tutuluyor. ");
}
//GetButtonDown komutu için.
if (Input.GetButtonDown("Tus 2"))
{
print(" Tuşa basıldı. ");
}
//GetButtonUp komutu için.
if (Input.GetButtonUp("Tus 3"))
{
print(" Tuş bırakıldı. ");
}
}
}
Yukarıda gördüğünüz üzere atadığımız girişleri belirterek kodumuzu çalıştırdığımızda girişimize karşılık olarak atadığımız tuşa basıp konsola yazı yazdırarak işlem kontrolünü sağlamış oluyoruz.
Farklı bir giriş sağlamak içinse tırnak içerisine erişmek istediğiniz girişin adını yazmanız yeterli olacaktır. Örnek Input.GetButton("giriş adı") gibi...
Klavye girişlerinizi yaparken size tavsiyem anlatmış olduğum ikinci yöntemle yapmanızdır. Çünkü ileriye dönük olarak yapmış olduğunuz bu girişlere erişmeniz daha kolay olacak ve aynı şekilde program içerisinden kullanıcılarınızın da bu girişlere erişmesini sağlayabileceksinizdir.
(Anlatımları kendim yazıyorum bu yüzden hata ve eksiklerim olabilir. Fark ettiğiniz taktirde yorum kısmında belirtirseniz sevinirim.)
Vakit ayırıp okuduğunuz için teşekkürler :)