Acara panel
Acara Tooltip

Kalender

Peristiwa penunjuk api untuk interaksi UI(User Interface) Memungkinkan pengguna untuk berinteraksi dengan aplikasi Anda. Unity saat ini mendukung tiga sistem UI. More info
Lihat di Glossary
dengan perangkat penunjuk. Mirip dengan peristiwa mouse, acara pointer memberikan informasi tambahan tentang perangkat input yang digunakan, seperti tekanan pena atau sudut kemiringan.

Acara pointer selalu mengikuti acara mouse di UI Toolkit.

Peristiwa pointer tidak memiliki posisi yang terus-menerus. Mereka juga tidak memiliki posisi set ketika mereka dibebaskan dari perangkat sentuh.

Beberapa peristiwa pointer, seperti peristiwa PointerStationaryEvent dan PointerCancelEvent, memiliki kondisi yang dipicu oleh sistem operasi (OS) perangkat input.

Kelas dasar untuk semua acara pointer adalah PointerEventBase.

Event Description Trickles down Bubbles up Cancellable
PointerDownEvent Sent ketika Anda menekan pointer. Yes Yes Yes
PointerUpEvent Sent ketika Anda melepaskan pointer. Yes Yes Yes
PointerMoveEvent Sent ketika state perubahan pointer. Yes Yes Yes
Login Sitemap Sent ketika pointer memasuki elemen visual, atau salah satu keturunannya. Yes Yes
PointerLeaveEvent Sent ketika pointer meninggalkan elemen visual dan semua keturunannya. Yes Yes
PointerOverEvent Sent ketika pointer memasuki elemen visual. Yes Yes Yes
PointerOutEvent Sent ketika pointer meninggalkan elemen visual. Yes Yes Yes
Login Sitemap Sent ketika tipe pointer (seperti stylus atau jari) tidak berubah untuk jumlah waktu yang ditentukan oleh sistem operasi. Yes Yes Yes
Login Sitemap Sent ketika tindakan pointer dibatalkan oleh sistem operasi. Yes Yes Yes

Sifat unik

altitudeAngle: AltitudeAngle mengandung sudut gaya relatif ke permukaan, di lobak. Nilai 0 menunjukkan bahwa stylus sejajar dengan permukaan. Nilai pi/2 menunjukkan bahwa itu tegak lurus ke permukaan.

azimuthAngle: The azimuthAngle mengandung sudut gaya relatif x-axis, di radians. Nilai 0 menunjukkan bahwa poin stylus di sepanjang sumbu x perangkat.

button: Properti tombol mengembalikan bilangan bulat yang mengidentifikasi tombol mouse yang ditekan untuk memicu acara. Tabel berikut daftar bilangan bulat dan tombol mouse terkait:

Integer Button
0 Tombol kiri
1 Tombol kanan
2 Tombol tengah

clickCount: Properti klikCount mengandung jumlah kali tombol ditekan.

deltaPosition: Properti deltaPosition mengandung perbedaan antara posisi pointer selama acara mouse sebelumnya dan posisinya selama acara mouse saat ini.

deltaTime: Properti deltaTime mengandung jumlah waktu yang telah berlalu sejak perubahan tercatat terakhir pada nilai pointer, dalam hitungan detik.

localPosition: Properti localPosition mengembalikan posisi pointer relatif terhadap elemen visual target.

modifiers: Properti pengubah kembali kunci pengubah saat ini berlangsung. Beberapa contoh pengubah adalah tombol Shift, Ctrl, atau Alt. Untuk informasi lebih lanjut, lihat dokumentasi MDN.Bagian kunci pengubah of the MDN documentation.

pointerId: Properti pointerId mengembalikan integer yang mengidentifikasi pointer yang mengirimkan acara.

pointerType: Properti pointerType kembali string yang menentukan jenis pointer yang menciptakan acara.

position: Properti posisi mengembalikan posisi pointer dalam sistem koordinasi layar atau dunia.

pressedButtons: Properti pressedButton kembali bilangan bulat yang mengidentifikasi kombinasi tombol mouse saat ini ditekan.

Jumlah adalah jumlah nilai integer tombol individu (lihat tabel di bawah). Sebagai contoh, memegang tombol mouse kanan dan tombol mouse tengah yang ditekan pada saat yang sama akan mengakibatkan pressedButton memiliki nilai 6.

Integer Button
1 Tombol kiri
2 Tombol kanan
4 Tombol tengah

pressure: Sifat tekanan mengembalikan jumlah tekanan saat ini diterapkan oleh sentuhan. Jika perangkat tidak melaporkan tekanan, nilai properti ini adalah 1,0f.

radius: Properti radius mengembalikan perkiraan jari-jari sentuhan. Tambahkan radiusVariance untuk mendapatkan radius sentuh maksimum, tarikkan untuk mendapatkan radius sentuh minimum.

radiusVariance: Nilai properti radiusVariance menentukan akurasi radius sentuh. Tambahkan nilai ini ke radius untuk mendapatkan radius sentuh maksimum, tarikkan untuk mendapatkan radius sentuh minimum.

tangentialPressure: Properti tangensialPressure mengembalikan nilai float mewakili tekanan yang diterapkan pada kontrol sensitif tekanan tambahan pada stylus.

twist: Sifat twist mengembalikan rotasi stylus di sekitar sumbunya, di radians.

Daftar acara

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

PointerDownEvent

PointerDownEvent dikirim ketika Anda menekan pointer dalam elemen visual.

target: Elemen visual yang menerima penangkapan pointer. Jika tidak, itu elemen paling dapat dipilih di bawah kursor.

PointerUpEvent

A PointerUpEvent memicu ketika Anda melepaskan pointer dalam elemen visual.

Ketika pemicu acara PointerUpEvent, itu juga menghilangkan koordinat pointer. Ini juga membersihkan cache pointer, jadi tidak ada catatan lokasi pointer.

target: Elemen visual yang menerima penangkapan pointer. Jika tidak, itu elemen paling dapat dipilih di bawah kursor.

PointerMoveEvent

PointerMoveEvent terjadi ketika keadaan perubahan pointer.

target: Elemen visual yang menerima penangkapan pointer. Jika tidak, itu elemen paling dapat dipilih di bawah kursor.

Login Sitemap

Login Sitemap dikirim ketika pointer memasuki elemen visual, atau salah satu keturunannya.

target: Elemen visual (atau salah satu keturunannya) yang keluar pointer.

PointerLeaveEvent

Sebuah PointerLeaveEvent dikirim ketika pointer meninggalkan elemen visual dan semua keturunannya. Misalnya jika elemen visual mengandung anak, maka elemen induk akan menerima acara ini ketika pointer tidak lagi di atas orang tua atau anak. Elemen induk tidak akan menerima PointerLeaveEvent sementara pointer masih lebih dari satu elemen anaknya, bahkan jika tidak lagi elemen paling top di bawah pointer. Ini akan menerima PointerOverEvent bukan.

target: Elemen visual (atau salah satu keturunannya) yang keluar pointer.

PointerOverEvent

PointerOverEvent dikirim ketika pointer memasuki elemen visual.

target: Elemen visual di bawah pointer.

PointerOutEvent

PointerOutEvent dikirim ketika pointer meninggalkan elemen visual.

target: Elemen visual yang keluar pointer.

Login Sitemap

Login Sitemap dikirim ketika tipe pointer (seperti stylus atau jari) tidak berubah untuk jumlah waktu yang ditentukan oleh sistem operasi.

target: Elemen visual yang menangkap pointer, atau elemen yang paling dapat dipilih di bawah pointer.

Login Sitemap

Login Sitemap dikirim ketika tindakan pointer dibatalkan oleh sistem operasi.

target: Elemen visual yang menangkap pointer, atau elemen yang paling dapat dipilih di bawah pointer.

Examples

Sampel kode berikut membuat jendela Editor dengan kotak merah yang mengandung kotak kuning. Ini mencetak pesan ke konsol ketika pointer meninggalkan elemen visual atau anaknya. Ini menunjukkan perilaku PointerOutEvent dan PointerLeaveEvent.

Untuk melihat contoh dalam tindakan, lakukan berikut:

  1. Di bawah Assets > Scripts > Editor, buat file UXML baru yang disebut PointerEventsTestWindow.uxml
  2. Salin kode UXML dari bawah ke dalamnya
  3. Di bawah Assets > Scripts > Editor, buat file C# baru yang disebut PointerEventsTestWindow.cs
  4. Salin sampel kode ke dalam skrip C#.
  5. Dari Editor Toolbar, pilih Window > UI Toolkit > Pointer Events Test Window.

UXML kode

<ui:UXML xmlns:ui="UnityEngine.UIElements" xmlns:uie="UnityEditor.UIElements" xsi="http://www.w3.org/2001/XMLSchema-instance" engine="UnityEngine.UIElements" editor="UnityEditor.UIElements" noNamespaceSchemaLocation="../../UIElementsSchema/UIElements.xsd" editor-extension-mode="False">
    <ui:VisualElement style="flex-grow: 1; justify-content: center; align-items: center;">
        <ui:VisualElement name="Red_Box" style="background-color: rgb(183, 34, 46); width: 50%; height: 50%; align-items: center; justify-content: center;">
            <ui:VisualElement name="Yellow_Box" style="width: 175%; height: 50%; background-color: rgb(197, 163, 0);" />
        </ui:VisualElement>
    </ui:VisualElement>
</ui:UXML>

C# kode


using UnityEditor;
using UnityEngine;
using UnityEngine.UIElements;
using UnityEditor.UIElements;

public class PointerEventsTestWindow : EditorWindow
{
    [MenuItem("Window/UI Toolkit/Pointer Events Test Window")]
    public static void ShowExample()
    {
        PointerEventsTestWindow wnd = GetWindow<PointerEventsTestWindow>();
        wnd.titleContent = new GUIContent("Pointer Events Test Window");
    }

    public void CreateGUI()
    {
        // Import UXML
        VisualTreeAsset visualTree = AssetDatabase.LoadAssetAtPath<VisualTreeAsset>("Assets/Scripts/Editor/PointerEventsTestWindow.uxml");
        visualTree.CloneTree(rootVisualElement);

        // Get the red box and register pointer event callbacks
        VisualElement redBox = rootVisualElement.Q("Red_Box");
        redBox.RegisterCallback<PointerOutEvent>(OnPointerOutEvent, TrickleDown.TrickleDown);
        redBox.RegisterCallback<PointerLeaveEvent>(OnPointerLeaveEvent, TrickleDown.TrickleDown);
    }

    private void OnPointerLeaveEvent(PointerLeaveEvent evt)
    {
        Debug.Log($"Pointer LEAVE Event. Target: {(evt.target as VisualElement).name}");
    }

    private void OnPointerOutEvent(PointerOutEvent evt)
    {
        Debug.Log($"Pointer OUT Event. Target: {(evt.target as VisualElement).name}");
    }
}

Acara panel
Acara Tooltip