Input.GetPenEvent
Declaration
public static PenData GetPenEvent(int index);Возвращаемое значение
PenData Сведения о событии пера в структуре.
Описание
Возвращает PenData для события pen на указанном индексе в очереди событий pen.
Примечание: Этот API является частью устаревшего менеджера ввода. Рекомендуется не использовать этот API в новых проектах. Для новых проектов используйте пакет 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(); } } }