PenStatus
перечисление
Описание
Параметры, задающие состояние пера: касается ли перо экрана или планшета, перевёрнуто ли оно и нажаты ли кнопки. Состояния можно комбинировать побитовым ИЛИ.
Прежде чем обрабатывать событие как событие ручки, вы должны проверить PointerType события мыши (e.g. EventType.MouseDown).
Когда пользователь использует ручку, некоторые события мыши часто смешиваются с событиями ручки в потоке событий, и вы не можете отличить их по типу, поскольку события мыши и ручки имеют одинаковые EventType. Вместо этого используйте PointerType для их различения. В противном случае Unity обрабатывает все входящие события мыши как события ручки, что может привести к неожиданному поведению, поскольку события мыши (pointerType = Mouse) не имеют настроенных полей событий ручки, таких как PenStatus.
using UnityEngine;
public class Example : MonoBehaviour { void OnGUI() { Event m_Event = Event.current;
if (m_Event.type == EventType.MouseDown) { if (m_Event.pointerType == PointerType.Pen) //Check if it's a pen event. { if (m_Event.penStatus == PenStatus.None) Debug.Log("Pen is in a neutral state."); else if (m_Event.penStatus == PenStatus.Inverted) Debug.Log("The pen is inverted."); else if (m_Event.penStatus == PenStatus.Barrel) Debug.Log("Barrel button on pen is down."); else if (m_Event.penStatus == PenStatus.Contact) Debug.Log("Pen is in contact with screen or tablet."); else if (m_Event.penStatus == PenStatus.Eraser) Debug.Log("Pen is in erase mode."); } else Debug.Log("Mouse Down."); //If it's not a pen event, it's a mouse event. } } }