当前位置:首页|资讯

触笔、绘图板和手写笔支持

作者:unity_某某师_高锦锦发布时间:2024-09-13

触笔支持包括桌面上的绘图板设备(如 Wacom 生产的各种绘图板)和移动设备上的手写笔(如 Samsung Note 系列的手写笔、iOS 上的 Apple Pencil 或 Microsoft Surface 系列的 Surface Pen)。

触笔通常提供压力感应、范围内检测(在笔尚未接触到绘图板或屏幕表面时控制光标的能力),并且通常能够翻转笔用于类似橡皮擦的操作。

触笔由 Pen 类实现的 Pen Device 布局表示,基于指针布局。

可以通过 Pen.current 查询上次使用或添加的触笔。

注意:

  • 触笔/绘图板支持目前在 Windows、UWP、iOS 和 Android 上实现。macOS 支持从 Unity 2020.1+ 开始。

  • 一些设备支持独立追踪多个触笔,但 Unity 的输入系统当前不支持此功能。

  • iOS: Apple Pencil 侧面的双击操作目前没有作为输入处理,且不支持范围内检测,inRange 将保持默认值。

控件

除了从 Pointer 继承的控件外,触笔设备还实现了以下控件:

控件类型描述tipButtonControl触笔的笔尖是否接触表面。等同于继承的 Pointer.press。eraserButtonControl触笔的橡皮擦/背端是否接触表面。firstBarrelButtonButtonControl触笔上第一个桶形按钮是否被按下。secondBarrelButtonButtonControl触笔上第二个桶形按钮是否被按下。thirdBarrelButtonButtonControl触笔上第三个桶形按钮是否被按下。fourthBarrelButtonButtonControl触笔上第四个桶形按钮是否被按下。inRangeButtonControl触笔是否在绘图板的检测范围内。如果不支持,该控件将始终保持值为 1。tiltVector2Control触笔相对于表面的倾斜角度。twistAxisControl触笔绕自身轴线的旋转角度。仅在有限数量的触笔(如 Wacom Art Pen)上支持。

压力、倾斜和旋转

  • 压力: 通过 Pen.pressure 可以访问触笔的当前压力,0 表示没有压力,1 表示最大压力。如果系统应用了自定义压力曲线,压力值可能会超过 1。如果触笔不支持压力级别,则 pressure 控件始终返回 1。

  • 倾斜: 如果支持,Pen.tilt 控件表示触笔相对于绘图板或屏幕表面的倾斜角度。X 和 Y 轴分别对应于屏幕的坐标轴。值为 1 表示触笔完全平行于表面,而值为 0 表示垂直于表面。如果触笔不支持倾斜角度,则 Pen.tilt 始终为 (0,0)。

  • 旋转: 一些触笔支持检测旋转(触笔绕自身轴线旋转)。如果支持,Pen.twist 表示当前的旋转角度,0 表示触笔朝向 Y 轴,接近 1 的值表示触笔完全顺时针旋转。

范围内检测

触笔可能不需要接触绘图板或屏幕表面就能控制光标。可以使用 inRange 按钮控件来判断触笔是否在检测范围内。如果 inRange 报告为按下,表示触笔与设备注册。对于不支持此功能的设备,inRange 始终报告为按下。

桶形按钮

触笔设备通常在侧面有一个或多个按钮。这些按钮通过 firstBarrelButtonsecondBarrelButtonthirdBarrelButtonfourthBarrelButton 来表示(如适用)。



Copyright © 2024 aigcdaily.cn  北京智识时代科技有限公司  版权所有  京ICP备2023006237号-1