指定笔的状态。例如,笔是否与屏幕或平板电脑接触,笔是否倒置,以及按钮是否被按下。
在 macOS 上,penStatus 不会反映按钮映射的更改。
在将事件处理为笔事件之前,您应该检查鼠标事件的 PointerType(例如 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.Contact) Debug.Log("Pen is in contact with screen or tablet."); } else Debug.Log("Mouse Down."); //If it's not a pen event, it's a mouse event. } } }