Basılıp Tutulma ve Bırakılma
Coddy'nin Unity Journey'sinin Unity'de Script Yazmanın Temelleri bölümünün bir parçası. Ders 12 / 67.
Unity bir tuş hakkında sana üç farklı bilgi verebilir ve her biri Update() içinde sorulur:
Input.GetKeyDown(KeyCode.Space): Bu karede Space tuşuna basıldı mı? Her basışta tek bir kare boyunca true olur.Input.GetKey(KeyCode.Space): Space tuşu şu anda basılı mı? Space 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 tek bir kare boyunca true olur.
Space tuşunu saniyede 60 kare hızında yarım saniye basılı tut; GetKey 30 karede true, GetKeyDown bu karelerin ilkinde ve GetKeyUp son kareden sonraki karede true olur. Her basışta bir kez ateş eden bir top için GetKeyDown kullanılır; GetKey ile tek bir 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şenler için kullanılır; örneğin deparın sona ermesi. Üçü de yalnızca mevcut kare için yanıt verir; bu yüzden Update() içinde yer alırlar: bu metot her karede çalışırken Start() bir kez çalışır ve neredeyse her basışı kaçırır.
Görev
KolaySapan, Space tuşu basılı tutulurken dolar: charge, Space tuşunun basılı tutulduğu her saniye 1 artar ve tuş basılı değilken artmaz. Space tuşu bırakıldığında, Charge: ifadesini ve ardından doluluk değerini (örneğin Charge: 1.5) günlüğe yazdır, sonra bir sonraki atış için charge değerini yeniden 0 yap.
Oynat'a bas, Space tuşunu basılı tutup bırak ve Konsol'u izle. Ardından Kontrol Et'e 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 günlüğe kaydet, ardından tekrar 0 olarak ayarla.
}
}
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Unity'de Script Yazmanın Temelleri bölümündeki tüm dersler
1İlk Betiğiniz
Merhaba, UnityKüpü YerleştirHer Karede Hareket EtHer Saniye DönTuşlarla Yön VerÖzet: Küpü Sür4Vektörler
Vektörleri ToplamaYönlerYerel ve Dünya UzayıÇapraz HızNesneler Arasındaki MesafeVector3 Bir YapıdırÖzet: Drone Pilotu7Proje: Yıldızı Yakala
YakalayıcıDüşen Bir Yıldız5Dönüşümler ve Hiyerarşi
Ebeveynler ve ÇocuklarÖlçekNesnelere BakışBir Noktaya Doğru HareketTekrar: Yörüngedeki Ay6GameObject'ler ve Bileşenler
Inspector'daki ReferanslarBir Bileşen AlEksik BileşenlerBir Bileşen EkleRequireComponentGöster ve GizleÖzet: Işık Anahtarı