Menu
CoddyTech

Ditekan pada Frame Ini

Termasuk bagian Membangun Game Sungguhan dalam perjalanan Unity di Coddy. Pelajaran 45 dari 56.

isPressed menjawab pertanyaan "apakah tombol sedang ditekan sekarang?" di setiap frame selama tombol ditahan. Untuk sesuatu yang seharusnya terjadi sekali setiap kali tombol ditekan, sebuah kontrol punya dua jawaban tambahan: wasPressedThisFrame bernilai true hanya pada frame saat tombol keyboard atau tombol mouse ditekan, dan wasReleasedThisFrame hanya pada frame saat tombol dilepas. Keduanya menggantikan Input.GetKeyDown dan Input.GetKeyUp, serta GetMouseButtonDown dan GetMouseButtonUp. Stempel karet ini bergerak turun saat tombol mouse ditekan dan terangkat saat tombol dilepas:

using UnityEngine;
using UnityEngine.InputSystem;

public class Stamp : MonoBehaviour
{
    public float drop = 0.5f;
    private int stamps;

    void Update()
    {
        Mouse mouse = Mouse.current;

        if (mouse.leftButton.wasPressedThisFrame)
        {
            transform.position += Vector3.down * drop;
            stamps++;
            Debug.Log("Stamp " + stamps);
        }
        if (mouse.leftButton.wasReleasedThisFrame)
        {
            transform.position += Vector3.up * drop;
        }
    }
}

Jika klik ditahan selama setengah detik, program mencatat Stamp 1 satu kali, menggerakkan stempel ke bawah satu kali, lalu mengangkatnya kembali satu kali. Jika kamu menggunakan isPressed pada if pertama, klik yang sama akan mencatat sekitar 30 stempel dan menenggelamkan stempel sejauh 15 unit ke dalam meja. Tombol keyboard bekerja dengan cara yang sama: Keyboard.current.spaceKey.wasPressedThisFrame bernilai true satu kali setiap kali tombol Spasi ditekan.

challenge icon

Tantangan

Sedang

Pelari cepat menunggu di balok start. Skripnya memiliki speed (6) dan crouch (0.3).

  • Saat tombol Space ditekan, pelari merunduk di balok start: ia bergerak turun sejauh crouch unit, dan Set dicatat.
  • Setelah itu, saat tombol Space dilepaskan, pelari berdiri kembali (naik sejauh crouch unit), Go! dicatat, dan lari dimulai: mulai saat itu, pelari bergerak sepanjang +z dengan kecepatan speed unit per detik.
  • Menahan tombol Space hanya mencatat Set satu kali, bukan setiap frame. Setelah pelari mulai berlari, tombol Space tidak melakukan apa-apa lagi.

Baca tombol Space dengan Keyboard.current. Tekan Jalankan, tahan Space lalu lepaskan, kemudian tekan Periksa.

Coba sendiri

using UnityEngine;
using UnityEngine.InputSystem;

public class Sprinter : MonoBehaviour
{
    public float speed = 6f;
    public float crouch = 0.3f;

    void Update()
    {
        // Saat Space ditekan: jongkok dan catat Set. Saat Space dilepas: berdiri, catat Go!, lalu berlari.
    }
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Membangun Game Sungguhan