Menu
CoddyTech

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.

challenge icon

Görev

Kolay

Sapan, 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.
    }
}
quiz iconKendini test et

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