Acara masukan
Acara Mouse

Kalender

Peristiwa keyboard terjadi ketika Anda menekan atau melepaskan kunci pada keyboard. Setiap acara mencakup informasi tentang modifier, karakter teks, dan kode kunci terkait untuk acara.

Banyak kontrol standar menggunakan KeyDownEvent untuk mengkodekan perilaku shortcut atau aksesibilitas. Contoh berikut semua menggunakan peristiwa keyboard:

  • Kelas Toggle dan Button mendengarkan untuk menekan kunci Enter dan Spacebar sebagai tindakan penggantian untuk klik mouse.
  • Kontrol ScrollViewKontrol UI yang menampilkan seperangkat besar Kontrol di area yang terlihat yang dapat Anda lihat dengan menggunakan scrollbar. More info
    Lihat di Glossary
    dan Slider menggunakan tombol panah arah tekan untuk memodulasi nilai mereka.
  • TextField controlKontrol TextField menampilkan bagian teks non-interaktif ke pengguna, seperti pembatasan, label untuk kontrol GUI lainnya, atau instruksi. More info
    Lihat di Glossary
    melihat properti keyCode dan properti karakter untuk mengeksekusi tindakan khusus atau menerima teks.

Kelas dasar untuk semua peristiwa keyboard adalah Login Login.

Event Description Trickles down Bubbles up Cancellable
KeyDownEvent Sent ketika pengguna menekan kunci pada keyboard. Yes Yes Yes
KeyUpEvent Sent ketika pengguna melepaskan kunci pada keyboard. Yes Yes Yes

Sifat unik

keyCode: Properti keyCode mengembalikan kunci karakter yang sesuai dengan kunci fisik pada perangkat input, seperti keyboard atau joystick. Perbedaan antara properti character dan properti keyCode adalah bahwa keyCode mewakili kunci fisik, sementara character mewakili entri karakter tertentu. Sebagai contoh, kedua a dan A kembali keyCode=KeyCode.A selama keyDownEvent.

character: Properti character mengembalikan kode karakter selama keyDownEvent.

modifiers: Properti modifiers mengembalikan kunci pengubah yang diadakan. Beberapa contoh kunci pengubah adalah tombol Shift, Ctrl, atau Alt.

Untuk informasi lebih lanjut, lihat dokumentasi MDN.Bagian kunci pengubah of the MDN documentation.

Daftar Acara

Daftar berikut menyediakan nama, deskripsi, dan target setiap acara dalam keluarga acara. Untuk informasi lebih lanjut tentang acara, lihat UI Toolkit API.

KeyDownEvent

Sebuah KeyDownEvent dikirim setiap kali Anda menekan kunci pada keyboard. Kunci yang ditekan mengandung properti keyCode untuk acara itu. Jika pers utama memiliki input teks yang terkait dengan itu, acara tambahan dikirim untuk setiap karakter input teks. Properti character mengandung karakter untuk acara tersebut.

Ketika Anda menekan dan melepaskan a, UI(User Interface) Memungkinkan pengguna untuk berinteraksi dengan aplikasi Anda. Unity saat ini mendukung tiga sistem UI. More info
Lihat di Glossary
Toolkit mengirim peristiwa berikut:


KeyDownEvent { keyCode=KeyCode.A }
KeyDownEvent { character=’a’ }
KeyUpEvent { keyCode=KeyCode.A }

Ketika Anda menekan dan melepaskan Ctrl+a, UI Toolkit mengirim acara berikut:


KeyDownEvent { keyCode=KeyCode.LeftControl, modifiers=EventModifiers.Control }
KeyDownEvent { keyCode=KeyCode.A, modifiers=EventModifiers.Control }
KeyUpEvent { keyCode=KeyCode.A, modifiers=EventModifiers.Control }
KeyUpEvent { keyCode=KeyCode.LeftControl }

target: Elemen visual yang memiliki fokus. Jika tidak ada elemen yang fokus, elemen visual akar panel.

KeyUpEvent

A KeyUpEvent dikirim ketika Anda melepaskan kunci pada keyboard. Properti keyCode untuk acara tersebut berisi kunci yang dirilis. KeyDownEvent memiliki acara tambahan yang dikirim ketika keystroke memiliki input teks yang terkait.

Ketika Anda menekan dan melepaskan a, UI Toolkit mengirim acara berikut:

KeyDownEvent { keyCode=KeyCode.A }
KeyDownEvent { character=’a’ }
KeyUpEvent { keyCode=KeyCode.A }

Ketika Anda menekan dan melepaskan Ctrl+a, UI Toolkit mengirim acara berikut:


KeyDownEvent { keyCode=KeyCode.LeftControl, modifiers=EventModifiers.Control }
KeyDownEvent { keyCode=KeyCode.A, modifiers=EventModifiers.Control }
KeyUpEvent { keyCode=KeyCode.A, modifiers=EventModifiers.Control }
KeyUpEvent { keyCode=KeyCode.LeftControl }

target: Elemen visual yang memiliki fokus. Jika tidak ada elemen yang fokus, elemen visual akar panel.

Examples

Contoh kode berikut mencetak pesan ke konsol ketika pengguna menekan kunci dalam TextField. Sampel kode ini menyoroti pertarungan acara kedua KeyUpEvent dan KeyDownEvent.

Untuk melihat contoh dalam tindakan, lakukan berikut:

  1. Buat GameObjectObjek mendasar dalam adegan Unity, yang dapat mewakili karakter, props, pemandangan, kamera, waypoints, dan banyak lagi. Fungsi GameObject didefinisikan oleh Komponen yang melekat padanya. More info
    Lihat di Glossary
    dengan UID yang valid.
  2. Di bawah Assets > Scripts, buat skrip C# yang disebut KeyboardEventTest.
  3. Salin contoh ke dalam skrip C#.
  4. Pasang Keyboard Script di EventTest ke GameObject dengan Kartu Kredit
  5. Masukkan mode Play dan ketik dalam TextField.
using UnityEngine;
using UnityEngine.UIElements;

// Add KeyboardEventTest to a GameObject with a valid UIDocument.
// When the user presses a key, it will print the keyboard event properties to the console.
[RequireComponent(typeof(UIDocument))]
public class KeyboardEventTest : MonoBehaviour
{
    void OnEnable()
    {
        var root = GetComponent<UIDocument>().rootVisualElement;
        root.Add(new Label("Press any key to see the keyDown properties"));
        root.Add(new TextField());
        root.Q<TextField>().Focus();
        root.RegisterCallback<KeyDownEvent>(OnKeyDown, TrickleDown.TrickleDown);
        root.RegisterCallback<KeyUpEvent>(OnKeyUp, TrickleDown.TrickleDown);
    }
    void OnKeyDown(KeyDownEvent ev)
    {
        Debug.Log("KeyDown:" + ev.keyCode);
        Debug.Log("KeyDown:" + ev.character);
        Debug.Log("KeyDown:" + ev.modifiers);
    }

    void OnKeyUp(KeyUpEvent ev)
    {
        Debug.Log("KeyUp:" + ev.keyCode);
        Debug.Log("KeyUp:" + ev.character);
        Debug.Log("KeyUp:" + ev.modifiers);
    }
}
Acara masukan
Acara Mouse