Unity3D :独立输入模块
推荐:将NSDT场景编辑器加入你的3D工具链
3D工具集:NSDT简石数字孪生
独立输入模块
根据设计,该模块与控制器/鼠标输入具有相同的功能。响应输入时会发送按钮按压、拖拽以及类似事件。
当鼠标/输入设备移动时,该模块将指针事件发送到组件,并使用图形射线投射器 (Graphics Raycaster)和物理射线投射器 (Physics Raycaster) 来计算给定指针设备当前指向的元素。您可以配置这些射线投射器来检测或忽略场景的某些部分,从而满足您的要求。
该模块会发送 Move 事件和 Submit/Cancel 事件来响应通过 Input 窗口跟踪的输入。对于键盘和控制器输入均是如此。可在模块的检视面板中配置跟踪的轴和键。
属性
属性: | 功能: |
---|---|
Horizontal Axis | 为水平轴按钮输入所需的管理器名称。 |
Vertical Axis | 为垂直轴输入所需的管理器名称。 |
Submit Button | 为 Submit 按钮输入所需的管理器名称。 |
Cancel Button | 为 Cancel 按钮输入所需的管理器名称。 |
Input Actions Per Second | 每秒允许的键盘/控制器输入数量。 |
Repeat Delay | 每秒输入操作重复率生效前的延迟秒数。 |
Force Module Active | 启用此属性可强制该__独立输入模块 (Standalone Input Module)__ 处于活动状态。 |
详细信息
该模块:
- 使用垂直/水平轴进行键盘和控制器导航
- 使用 Submit/Cancel 按钮发送提交和取消事件
- 在事件之间有一个超时值仅允许每秒的最大事件数。
该模块的流程如下
- 如果输入了 Input 窗口中的有效轴,则向所选对象发送 Move 事件
- 如果按下了 Submit 或 Cancel 按钮,则向所选对象发送 Submit 或 Cancel 事件
- 处理鼠标输入
- 如果这是新的按压操作
- 发送 PointerEnter 事件(向上发送到层级视图中可对其进行处理的每个对象)
- 发送 PointerPress 事件
- 缓存拖动处理程序(层级视图中可对其进行处理的第一个元素)
- 将 BeginDrag 事件发送到拖动处理程序
- 在事件系统中将“Pressed”对象设置为 Selected
- 如果这是持续按压操作
- 处理移动
- 将 DragEvent 发送到缓存的拖动处理程序
- 如果触摸在对象之间移动,则处理 PointerEnter 和 PointerExit 事件
- 如果这是释放操作
- 将 PointerUp 事件发送到收到 PointerPress 的对象
- 如果当前悬停对象与 PointerPress 对象相同,则发送 PointerClick 事件
- 如果缓存了拖动处理程序,则发送 Drop 事件
- 将 EndDrag 事件发送到缓存的拖动处理程序
- 处理滚轮事件
由3D建模学习工作室整理翻译,转载请注明出处!