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

Input.GetPenEvent

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交,但我们确实阅读了用户提出的每个建议的更改,并在适用时进行更新。

关闭

提交失败

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

关闭

取消

声明

public static PenData GetPenEvent(int index);

返回值

PenData 结构体中的笔事件详细信息。

描述

返回笔事件队列中给定索引处的笔事件的 PenData

注意:此 API 是旧版 Input 类的一部分,不建议在新项目中使用。此处提供文档是为了支持使用旧输入管理器和输入类的旧版项目。对于新项目,您应该使用更新的 Input System 包。(了解更多)。

在 Windows 上,笔事件队列按时间顺序保存由 GetPointerPenInfoHistory 提供的任何错过的笔事件。队列在每一帧结束时清除。在所有其他平台上,队列始终为空。

using UnityEditor;
using UnityEngine;

public class Example : EditorWindow { [MenuItem("Window/Pen Window")] public static void ShowWindow() { EditorWindow win = EditorWindow.GetWindow(typeof(Example)); win.titleContent = new GUIContent("Pen Window"); win.wantsMouseMove = true; }

void OnGUI() { var e = Event.current; if ((e.type == EventType.MouseDown || e.type == EventType.MouseDrag || e.type == EventType.MouseDown || e.type == EventType.MouseUp || e.type == EventType.MouseMove) && (e.pointerType == PointerType.Pen)) { int count = Input.penEventCount; for (int i = 0; i < count; i++) { // Log data from queued pen events PenData p = Input.GetPenEvent(i); Debug.Log($"Pen position {p.position}, pen pressure {p.pressure}, pen twist {p.twist}, pen tilt {p.tilt}, pen status - barrel {(p.penStatus & PenStatus.Barrel) != 0}"); } Input.ResetPenEvents(); } } }