Basılı, Basılı Tutulmuş, Bırakılmış
Coddy'nin Unity Journey'sinin Unity'de Script Yazmanın Temelleri bölümünün bir parçası. Ders 19 / 85.
Unity sana bir tuşla ilgili üç farklı bilgi verebilir ve bunların her biri Update() içinde sorulur:
Input.GetKeyDown(KeyCode.Space): Bu karede Space tuşuna basıldı mı? Her basışta bir kare boyunca true olur.Input.GetKey(KeyCode.Space): Space tuşu şu anda basılı mı? Tuş basılı tutulduğu sürece her karede true olur.Input.GetKeyUp(KeyCode.Space): Bu karede Space tuşu bırakıldı mı? Tuş bırakıldığında bir kare boyunca true olur.
Space tuşunu saniyede 60 kare hızında yarım saniye basılı tutarsan, GetKey 30 kare boyunca true olur; GetKeyDown bu karelerin ilkinde, GetKeyUp ise son karenin ardından gelen karede true olur. Her basışta bir kez ateş eden bir top GetKeyDown kullanır; GetKey kullanılırsa tek basışta 30 atış yapılır:
public int shots = 0;
void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
shots++;
Debug.Log("Shots fired: " + shots);
}
}GetKeyUp, oyuncu tuşu bıraktığında gerçekleşen şeyler içindir; örneğin koşunun sona ermesi gibi. Üçü de yalnızca geçerli kare için yanıt verir; bu nedenle Update() içinde yer alırlar: her karede çalışır, oysa Start() bir kez çalışır ve basışların neredeyse tamamını kaçırır.
Görev
KolaySapan, Space tuşu basılı tutulurken şarj olur ve bırakıldığında atışın sonucunu bildirir.
Update()içinde,Input.GetKey(KeyCode.Space)true olduğu süreceTime.deltaTimedeğerinichargedeğişkenine ekle.Input.GetKeyUp(KeyCode.Space)olduğunda"Charge: " + chargedeğerini günlüğe yaz, ardındanchargedeğerini 0 olarak ayarla.
“Oyna” düğmesine bas, Space tuşunu basılı tut ve bırak: Console'da Charge: 1.5 gibi bir satır görünür. Ardından “Kontrol et” düğmesine bas.
Kendin dene
using UnityEngine;
public class Slingshot : MonoBehaviour
{
float charge = 0f;
void Update()
{
// Space basılı tutulurken: charge her saniye 1 artar.
// Space bırakıldığında: charge değerini logla, ardından tekrar 0 olarak ayarla.
}
}
Unity'de Script Yazmanın Temelleri bölümündeki tüm dersler
1Unity'de C# Temelleri
Merhaba, UnityDeğişkenlerOndalık Sayılar için f GerekirKonsolda MetinHatırlayan DeğişkenlerEğer ve DeğilseSayıları KarşılaştırmaTekrar: Coin Collector4Girdi
Basılı, Basılı Tutulmuş, BırakılmışEksenlerAdlandırılmış DüğmelerFare DüğmeleriTekrar: Zıplama Yükleme7Döngüler ve Metotlar
for ile tekrarlamaİç içe döngülerBir metot yazmaYanıt veren metotlarDizilerTekrar: Merdiven10Nesneleri Bulma
Ada Göre BulEtiketlerTüre Göre BulReferanslar Bulmaktan İyidirUnity'de NullÖzet: En Yakın Madeni Para13Proje: Bloklardan Kaç
KoşucuGökyüzünden Bloklar5Vektörler
Vektörleri ToplamaYönlerYerel ve Dünya UzayıÇapraz HızNesneler Arasındaki MesafeVector3 Bir Struct'tırTekrar: Drone Pilotu8GameObject'ler ve Bileşenler
Inspector'daki ReferanslarBir Bileşen AlEksik BileşenlerBileşen EkleRequireComponentGöster ve GizleÖzet: Işık Anahtarı3Inspector
Inspector AlanlarıSerializeFieldOndalıklı Sayılar ve MathfInspector ÖzellikleriTekrar: Asansör6Dönüşümler ve Hiyerarşi
Ebeveynler ve ÇocuklarBayrağı Göndere ÇekÖlçekNesnelere BakBir Noktaya Doğru Hareket EtTekrar: Yörüngedeki Ay9Proje: Yıldızı Yakala
YakalayıcıDüşen Bir YıldızKendi başına pratik yap: Unity playground