Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah saya mengesan peristiwa klik/sentuh pada unsur -unsur UI dan GameObjects dalam perpaduan?

Bagaimanakah saya mengesan peristiwa klik/sentuh pada unsur -unsur UI dan GameObjects dalam perpaduan?

Linda Hamilton
Linda Hamiltonasal
2025-02-03 00:26:08663semak imbas

How Do I Detect Click/Touch Events on UI Elements and GameObjects in Unity?

mengendalikan klik dan sentuhan dalam UI Perpaduan dan GameObjects

Panduan ini menerangkan cara untuk mengesan peristiwa klik dan sentuh pada kedua -dua unsur UI dan GameObjects.

mengesan klik elemen UI

untuk elemen UI (imej, rawimages, butang, dan lain -lain), menggunakan sistem acara Perpaduan dan bukannya API input. Lampirkan skrip yang melaksanakan antara muka acara yang sesuai ke elemen UI anda.

antara muka acara ui

untuk elemen seperti imej, rawimage, dan teks:

<code class="language-csharp">public class ClickDetector : MonoBehaviour, IPointerDownHandler, IPointerClickHandler,
    IPointerUpHandler, IPointerExitHandler, IPointerEnterHandler,
    IBeginDragHandler, IDragHandler, IEndDragHandler
{
    // Implement event functions (e.g., OnPointerClick, OnPointerDown, etc.)
}</code>

Butang: Butang

menawarkan pendekatan yang lebih mudah menggunakan acara

: onClick

<code class="language-csharp">public class ButtonClickDetector : MonoBehaviour
{
    public Button button1;
    public Button button2;

    void OnEnable()
    {
        button1.onClick.AddListener(() => ButtonClicked(button1));
        button2.onClick.AddListener(() => ButtonClicked(button2));
    }

    void ButtonClicked(Button button)
    {
        // Your button click handling code here
    }
}</code>

Mengesan klik pada GameObjects

Untuk mengesan klik pada GameObjects 3D atau 2D, tambahkan

(untuk 3D) atau PhysicsRaycaster (untuk 2D) ke kamera utama anda. Kemudian, anda boleh menggunakan antara muka peristiwa yang sama seperti yang diterangkan di atas untuk elemen UI. Pastikan GameObject anda mempunyai collider. Physics2DRaycaster

Menyelesaikan masalah sistem acara

jika klik tidak mendaftar:

  • sistem acara: Sahkan sistem acara wujud di tempat kejadian anda.
  • kanvas: Pastikan elemen UI anda adalah anak -anak kanvas.
  • raycaster: Tambahkan komponen raycaster yang sesuai ( atau PhysicsRaycaster) ke kamera anda. Physics2DRaycaster
  • Lampiran skrip: Sahkan skrip pengesanan dilampirkan pada elemen UI yang betul atau GameObject.
  • Halangan: Semak elemen UI yang bertindih menyekat pengesanan klik.
dengan mengikuti langkah -langkah ini, anda dapat menguruskan peristiwa klik dan sentuh secara berkesan dalam projek perpaduan anda.

Atas ialah kandungan terperinci Bagaimanakah saya mengesan peristiwa klik/sentuh pada unsur -unsur UI dan GameObjects dalam perpaduan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn