Dans Unity3d Comment détecter le toucher sur l'INTERFACE utilisateur ou pas?
En faire Unity3d application mobile. Et j'ai un problème: Comment détecter le toucher sur l'INTERFACE utilisateur ou pas?
J'ai essayer ça (mais maintenant, le travail)
UnityEngine.EventSystems.EventSystem.current.IsPointerOverGameObject()
et ce
private static List<RaycastResult> tempRaycastResults = new List<RaycastResult>();
public bool PointIsOverUI(float x, float y)
{
var eventDataCurrentPosition = new PointerEventData(EventSystem.current);
eventDataCurrentPosition.position = new Vector2(x, y);
tempRaycastResults.Clear();
EventSystem.current.RaycastAll(eventDataCurrentPosition, tempRaycastResults);
return tempRaycastResults.Count > 0;
}
Vous devez vous connecter pour publier un commentaire.
Pour mobile, vous avez besoin de passer l'id de la ligne de Touche à IsPointerOverGameObject
EventSystem.current.IsPointerOverGameObject()
a bien fonctionné dans iOS (et Android!), mais au moins, dans l'Unité 5.4.0f3, j'ai dû ajouter un id (dans mon cas0
était très bien) pour iOS, mais pas pour Android.