KeyboardMove

ℹ️

新功能:KeyboardMove 组件尚未发布,将成为 realvirtual 6.0.5 版本的一部分。

KeyboardMove 组件使用键盘输入实现 GameObject 的精确手动定位,具有平滑插值和可配置的移动边界。

概述

KeyboardMove 通过可自定义的键盘输入,为自动化仿真中的 GameObject 定位提供交互式控制。该组件在调试期间的手动定位任务、对象放置调试或创建需要用户直接控制对象移动的交互式演示中特别有用。

重要:KeyboardMove 仅移动其附加到的特定 GameObject 及其所有子对象。移动在对象的本地坐标系中进行,即 X、Y 和 Z 轴相对于对象当前的旋转和方向,而非世界坐标系。

该组件支持通过双键组合独立控制所有三个轴,允许在保持精确控制的同时实现复杂的移动模式。此本地空间移动行为使其非常适合控制在场景中可能朝各种方向的对象,因为移动方向相对于对象自身的坐标系保持一致。

Unity Inspector 中的 KeyboardMove 组件
💡 提示
KeyboardMove 使用 Unity 的标准单位系统,其中 1 个单位等于 1 米。所有速度和限制值以米和米/秒为单位指定。
💡 提示
KeyboardMove 专为设置、调试和测试阶段的手动控制而设计。它不是基于 Drive 的移动系统,不应替代生产自动化序列中的自动移动。请使用 Drive 组件进行编程自动化移动。

属性

移动设置

Speed (浮点) 控制按键时的移动速度(以米/秒为单位)。值越大移动越快,值越小则提供更精细的控制。默认值 1 m/s 在大多数应用中提供了良好的平衡。

LerpFactor (浮点) 决定移动插值的平滑度,值越大移动响应越快,值越小则产生更平滑、更渐进的过渡。推荐值在 1 到 20 之间,默认值 10 在大多数场景中效果良好。此平滑有助于创建自然的运动,避免突然的启停。

输入键 - X 轴

X 轴控制对象本地坐标系中的左右移动。

XNegativeKey1 (KeyCode) 负 X 轴移动的主键(通常为左)。默认为 Keypad4,便于使用数字键盘控制。

XNegativeKey2 (KeyCode) 负 X 移动的可选辅助键。设置为 None 以外的值时,必须同时按下两个键才能触发移动。此双键要求对于防止关键定位任务中的意外移动非常有用。

XPositiveKey1 (KeyCode) 正 X 轴移动的主键(通常为右)。默认为 Keypad6,与数字键盘布局保持一致。

XPositiveKey2 (KeyCode) 正 X 移动的可选辅助键,遵循与负方向相同的双键逻辑。

输入键 - Y 轴

Y 轴控制对象本地坐标系中的垂直移动(上下)。

YNegativeKey1 (KeyCode) 负 Y 轴移动的主键(通常为下)。默认为 None,因为垂直移动在自动化场景中通常不需要。

YNegativeKey2 (KeyCode) 负 Y 移动的可选辅助键,支持双键。

YPositiveKey1 (KeyCode) 正 Y 轴移动的主键(通常为上)。默认为 None。

YPositiveKey2 (KeyCode) 正 Y 移动的可选辅助键。

输入键 - Z 轴

Z 轴控制对象本地坐标系中的前后移动。

ZNegativeKey1 (KeyCode) 负 Z 轴移动的主键(通常为后退)。默认为 Keypad2,便于数字键盘导航。

ZNegativeKey2 (KeyCode) 负 Z 移动的可选辅助键,具有双键功能。

ZPositiveKey1 (KeyCode) 正 Z 轴移动的主键(通常为前进)。默认为 Keypad8,完成直观的数字键盘控制方案。

ZPositiveKey2 (KeyCode) 正 Z 移动的可选辅助键。

重置控制

ResetKey (KeyCode) 用于将 GameObject 立即重置到初始位置的键。默认为 Keypad5,便于在定位任务中快速返回起始位置。此功能在您需要在大量移动后快速返回已知参考点时特别有用。

移动限制

所有移动限制相对于组件启动时 GameObject 的初始位置指定。

XAxisLimits (Vector2) 定义沿 X 轴距初始位置的最小 (x) 和最大 (y) 允许位置(以米为单位)。默认范围 -10 到 +10 米提供了充足的移动空间,同时防止对象离起始点太远。

YAxisLimits (Vector2) 设置距初始位置的垂直移动边界(以米为单位)。这些限制确保对象保持在指定的高度范围内,对于起重机系统或升降机构尤为重要。

ZAxisLimits (Vector2) 建立距初始位置的前后移动边界(以米为单位)。这些约束对于防止碰撞和保持对象在其操作区域内至关重要。

Editor 工具

可视 Gizmo

当在 Unity Editor 中选中带有 KeyboardMove 的 GameObject 时,青色线框边界可视化允许的移动区域。此线框立方体显示由轴限制属性定义的确切边界,便于理解和调整移动约束。

黄色球体标记移动区域的初始位置(中心点),为所有移动计算的原点提供清晰的参考。在 Play 模式期间,红色球体指示当前目标位置,帮助调试移动行为并验证限制是否正常工作。

使用示例

手动定位基本设置

  1. KeyboardMove 组件添加到任何您想要控制的 GameObject
  2. 配置 Speed 以匹配您 desired 的移动速率(一般使用 1-5 m/s)
  3. 调整 LerpFactor 以获得移动平滑度(5-10 为平滑运动,15-20 为响应控制)
  4. 根据您的场景约束设置适当的 Movement Limits
  5. 按 Play 并使用配置的键移动对象

数字键盘控制配置

默认配置使用数字键盘进行直观的移动控制:

  • 数字键盘 4/6:左/右移动(X 轴)
  • 数字键盘 8/2:前进/后退移动(Z 轴)
  • 数字键盘 5:重置到初始位置
  • 如果需要垂直控制,可以配置 Y 轴键

此布局镜像常见的工业控制面板,提供逻辑空间映射。

双键安全设置

对于必须防止意外移动的关键定位任务:

  1. XNegativeKey2 设置为 LeftShift 或 LeftControl
  2. XPositiveKey2 设置为相同的修饰键
  3. 根据需要对 Y 和 Z 轴重复
  4. 现在移动需要按住修饰键加方向键

此配置确保有意的控制操作并防止意外移动。