版本: Unity 6 (6000.0)
语言英语
  • C#

Event.penStatus

建议更改

成功!

感谢您帮助我们改进 Unity 文档的质量。虽然我们无法接受所有提交内容,但我们会阅读用户提出的每项建议,并在适用情况下进行更新。

关闭

提交失败

由于某种原因,您的建议更改无法提交。请<a>稍后再试</a>。感谢您花时间帮助我们改进 Unity 文档的质量。

关闭

取消

public PenStatus penStatus;

描述

指定笔的状态。例如,笔是否与屏幕或平板电脑接触,笔是否倒置,以及按钮是否被按下。

在 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. } } }