pointerId | 指针(触控/鼠标)ID。 |
具有给定 ID 的指针是否位于 EventSystem 对象上?
using UnityEngine; using System.Collections; using UnityEngine.EventSystems;
public class MouseExample : MonoBehaviour { void Update() { // Check if the left mouse button was clicked if (Input.GetMouseButtonDown(0)) { // Check if the mouse was clicked over a UI element if (EventSystem.current.IsPointerOverGameObject()) { Debug.Log("Clicked on the UI"); } } } }
如果使用没有参数的 IsPointerOverGameObject(),它将指向“鼠标左键”(pointerId = -1);因此,当您使用 IsPointerOverGameObject 进行触摸时,应该考虑将 pointerId 传递给该对象。
using UnityEngine; using System.Collections; using UnityEngine.EventSystems;
public class TouchExample : MonoBehaviour { void Update() { // Check if there is a touch if (Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Began) { // Check if finger is over a UI element if (EventSystem.current.IsPointerOverGameObject(Input.GetTouch(0).fingerId)) { Debug.Log("Touched the UI"); } } } }
请注意,对于触摸操作,应将 IsPointerOverGameObject 与“OnMouseDown()”、“Input.GetMouseButtonDown(0)”或“Input.GetTouch(0).phase == TouchPhase.Began”结合使用。