Je viens de tester c'est pas mal du tout !
J'ai voulu tester à faire la même chose quand on clique sur une UI - Image , je me suis baladé sur https://docs.unity3d.com/ScriptRefer...EventData.html
J'ai vu donc ce qui m'intéresse:
Première étape, en regardant ton code, je vois que tu appelles OnPointerEnter qui est bien dans la doc pour PointerEnter, du coup je tente de tenter de créer une void :
Bon premier "échec": je ne vois pas ton OnPointerEnter mais je me dis que c'est comme un Void Start, une fois utilisé une fois il ne te le propose plus, du coup vu qu'il me propose rien d'autre et surtout pas mon OnPointerDown je me dis que j'ai loupé un truc
Après avoir décortiqué plus en détail le code je vois que tu fais appel au IPointerEnterHandler qui dans la doc se rapporte... au PointerEventData ! super
En cherchant sur le net et la doc je trouve facilement le IPointerDownHandler que j'ajoute et rien a faire il ne me propose pas le OnPointerEnter en automatique .... je vu un exemple sur le net avec le IPointerExitHandler en plus du Enter et cela fonctionne niquel... du coup moment d'horreur quand je réalise que unity ne le propose pas automatiquement mais que ça existe
Bref je fais ma petite fonction et ça marche mais bon un peu déroutant tout ça !
On trouve le IPointerDownHandler en faisant une recherche de "IPointer" dans la doc unity... c'est con quand même que depuis la page du PointerEventData on nous parle du "pointerEnter The object that received 'OnPointerEnter'" sans nous dire qu'il faut utiliser le "IPointerEnterHandler" ! c'est bête ça de filer les infos à moitiés
Du coup cela soulève (encore et toujours avec moi) quelques questions
1. Du coup j'ai compris à quoi sert le
PointerEventData eventData
, on peut l'appeler dans la procédure par exemple pour récupérer le .position .. du coup on peut aussi appeler le .PointerEnter
J'ai voulu tenter un
1 2 3 4 5 6 7 8 9 10 11
| public class OnMouseEnterUI : MonoBehaviour
{
public int COMPTEUR =0;
public void Update(PointerEventData eventData)
{
if (eventData.pointerEnter)
{
COMPTEUR += 1;
}
}
} |
Pour pouvoir récupérer tous les event avec un if mais l'Update ne prend pas de paramètre
Ce n'est pas possible de juste déclarer le PointerEventData eventData quelque part pour utiliser toutes les fonctions sans avoir à déclarer du coup un par un ceux dont on a besoin IPointerEnterHandler,IPointerEnterHandler?
2. Pourquoi unity ne propose pas en automatique "OnPointerDown", "OnPointerEnter" quand on commence à écrire tout comme il propose "OnMouseDown", "OnMouseEnter" etc si tu commences a écrire Il y a une option quelque part à activer? c'est con car même en utilisant le UnityEngine.EventSystems et en déclarant utiliser le PointerEnterHandler, ça nous aide pas pour l'appeler
Bonne soirée et merci d'avance pour ceux qui auront le courage de me lire
Partager