PointerEventData是Unity中UGUI系統中的一個重要元件,用於處理使用者輸入的指標事件。它可以獲取使用者的點選、拖拽、捲動等操作,並提供了一系列的屬性和函數來處理這些事件。
PointerEventData通過封裝底層的輸入系統,將使用者的輸入事件轉化為Unity中的事件。它可以獲取使用者的點選位置、點選型別、點選物件等資訊,並將這些資訊傳遞給相應的事件處理常式。
position
:獲取使用者點選的螢幕座標。delta
:獲取使用者拖拽的位移量。button
:獲取使用者點選的滑鼠按鈕。clickCount
:獲取使用者點選的次數。pointerEnter
:獲取滑鼠指標所在的UI物件。GetPress()
:判斷滑鼠按鈕是否按下。GetPressDown()
:判斷滑鼠按鈕是否剛剛按下。GetPressUp()
:判斷滑鼠按鈕是否剛剛擡起。IsPointerMoving()
:判斷滑鼠指標是否在移動。IsPointerOverGameObject()
:判斷滑鼠指標是否在UI物件上。using UnityEngine;
using UnityEngine.EventSystems;
public class ClickPosition : MonoBehaviour, IPointerClickHandler
{
public void OnPointerClick(PointerEventData eventData)
{
Debug.Log("點選位置:" + eventData.position);
}
}
操作步驟:
注意事項:
using UnityEngine;
using UnityEngine.EventSystems;
public class ButtonPress : MonoBehaviour, IPointerDownHandler, IPointerUpHandler
{
public void OnPointerDown(PointerEventData eventData)
{
Debug.Log("滑鼠按鈕按下");
}
public void OnPointerUp(PointerEventData eventData)
{
Debug.Log("滑鼠按鈕擡起");
}
}
操作步驟:
注意事項:
using UnityEngine;
using UnityEngine.EventSystems;
public class DragPosition : MonoBehaviour, IDragHandler
{
public void OnDrag(PointerEventData eventData)
{
Debug.Log("拖拽位移:" + eventData.delta);
}
}
操作步驟:
注意事項:
using UnityEngine;
using UnityEngine.EventSystems;
public class PointerOverUI : MonoBehaviour
{
public void Update()
{
if (EventSystem.current.IsPointerOverGameObject())
{
Debug.Log("滑鼠指標在UI物件上");
}
}
}
操作步驟:
注意事項:
using UnityEngine;
using UnityEngine.EventSystems;
public class ClickCount : MonoBehaviour, IPointerClickHandler
{
public void OnPointerClick(PointerEventData eventData)
{
Debug.Log("點選次數:" + eventData.clickCount);
}
}
操作步驟:
注意事項: