Maison >développement back-end >C++ >Comment détecter les événements de clic / touche sur les éléments d'interface utilisateur et les GameObjects dans Unity?

Comment détecter les événements de clic / touche sur les éléments d'interface utilisateur et les GameObjects dans Unity?

Linda Hamilton
Linda Hamiltonoriginal
2025-02-03 00:26:08628parcourir

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

Gestion des clics et touches dans Unity Ui et GameObjects

Ce guide explique comment détecter les événements de clic et de toucher sur les éléments de l'interface utilisateur d'Unity et les GameObjects.

Détection de l'élément d'interface utilisateur clique

Pour les éléments d'interface utilisateur (images, rames, boutons, etc.), utilisez le système d'événements d'Unity au lieu de l'API d'entrée. Joindre un script implémentant l'interface d'événement appropriée à votre élément d'interface utilisateur.

Interfaces d'événement UI

pour des éléments comme l'image, le rawimage et le texte:

<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>

boutons:

Les boutons

offrent une approche plus simple en utilisant l'événement 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>

Détection des clics sur GameObjects

Pour détecter les clics sur les jeux 3D ou 2D, ajoutez un PhysicsRaycaster (pour 3D) ou Physics2DRaycaster (pour 2D) à votre appareil photo principal. Ensuite, vous pouvez utiliser les mêmes interfaces d'événements que décrites ci-dessus pour les éléments d'interface utilisateur. Assurez-vous que votre GameObject a un collisionneur.

Dépannage du système d'événements

Si les clics ne s'inscrivent pas:

  • Système d'événements: confirmer qu'un système d'événements existe dans votre scène.
  • toile: Assurez-vous que vos éléments d'interface utilisateur sont des enfants d'une toile.
  • Raycaster: Ajoutez le composant Raycaster approprié (PhysicsRaycaster ou Physics2DRaycaster) à votre appareil photo.
  • Attachement du script: Vérifiez que le script de détection est attaché à l'élément d'interface utilisateur correct ou à GameObject.
  • Obstructions: Vérifiez les éléments d'interface utilisateur qui se chevauchent la détection de clics.

En suivant ces étapes, vous pouvez gérer efficacement les événements de clic et de contact dans vos projets d'unité.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn