pointerId | ポインター ID (タッチ、マウス)。 |
指定した ID のポインターが EventSystem オブジェクト上にあるかどうか。
#pragma strict public class MouseExample extends MonoBehaviour { function 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"); } } } }
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 をタッチに使用する場合、ポインター ID を指定する必要があります。
#pragma strict public class TouchExample extends MonoBehaviour { function 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"); } } } }
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 のいずれかと一緒に使用するようにしてください。