Haply::Inverse::Unity::Inverse3
代表 Inverse3 设备控制器,管理设备数据和状态更新。 更多
继承于Haply.Inverse.Unity.DeviceBehaviour, MonoBehaviour
公共活动
名称 | |
---|---|
设备代理 | 设备状态改变() 在每个触觉帧上触发的事件。 |
Action< Inverse3 > | OrientationChangedAsync() 每当Inverse3设备的机身方向发生变化时触发。 |
公共职能
名称 | |
---|---|
代表 void | 设备代理(Inverse3inverse3) 表示将处理Inverse3设备的Inverse3.DeviceStateChanged事件的方法。 |
空白 | 请求更新当前电源状态() 请求更新当前电源状态(Powered),完成后触发PowerSupplyStatusChanged事件。 |
空白 | 请求更新方向() 请求更新Inverse3主体方向,完成后触发OrientationChangedAsync事件。 |
空白 | 光标设置本地力(in Vector3 force) 设置设备本地空间中沿 x、y 和 z 轴施加到光标上的力,单位为牛顿(N)。 |
空白 | 游标设置本地力(浮点 x、浮点 y、浮点 z) |
空白 | 光标力设置(in Vector3 force) 以牛顿(N)为单位设置游标在世界空间中受到的力。 |
空白 | 光标力设置(浮点 x、浮点 y、浮点 z) |
空白 | 光标设置本地位置(in Vector3 position) 设置光标在设备本地空间中沿 x、y 和 z 轴的位置设置点,单位为米(m)。 |
空白 | 游标设置本地位置(浮点 x、浮点 y、浮点 z) |
空白 | 光标位置设置(in Vector3 position) 设置光标在世界空间中的位置设定点,单位为米(m)。 |
空白 | 光标设置位置(浮点 x、浮点 y、浮点 z) |
空白 | 关节设置扭矩(Joint3 torques) 为Inverse3设备的每个关节设置所需的扭矩,单位为牛顿毫米 (Nmm)。 |
空白 | 关节设置力矩(浮点 t0、浮点 t1、浮点 t2) |
空白 | 关节设置扭矩角度 |
空白 | 关节设置扭矩(浮动 x、浮动 y、浮动 z) |
空白 | 关节角度设置(Joint3 angles) 为Inverse3设备的每个关节设置所需的关节角度,单位为度(°)。 |
空白 | 关节设置角度(浮动 alpha0、浮动 alpha1、浮动 alpha2) |
空白 | 关节设置角度角度 |
bool | 释放() 试图重置光标的所有力和位置控制。 |
bool | TryResetForce() |
向量3 | 变换点(Vector3 position) 使用缓存的LocalToWorldMatrix 将位置从设备或光标的本地空间转换到世界空间。 |
向量3 | 转换矢量(Vector3 vector) 使用缓存的LocalToWorldMatrix 将一个向量从设备或光标的本地空间转换到世界空间。 |
向量3 | 反变换点(Vector3 position) 使用缓存的WorldToLocalMatrix 将位置从世界空间转换回设备或光标的本地空间。 |
向量3 | 反变换向量(Vector3 vector) 使用缓存的WorldToLocalMatrix 将矢量从世界空间转换回设备或光标的本地空间。 |
覆盖字符串 | 字符串() 返回对象的字符串表示,提供人可读的描述,包括对象名称、类类型、设备 ID 和选定的手度。 |
受保护的功能
名称 | |
---|---|
覆盖 void | InvokeReadyEvent() |
虚拟覆盖 void | 设置() 一旦设置了 _performSetup 标志,该方法就会被自动调用,以处理因计算量过大而无法在每一帧调用的情况。 此方法可以覆盖,但要注意保持基本调用。使用SetSetupToPerform可触发Setup调用。 |
虚拟覆盖 void | 固定更新() |
公共财产
名称 | |
---|---|
覆盖 DeviceType | 设备类型 获取设备类型,该控制器始终返回 DeviceType.Inverse3。 |
覆盖游标行为 | 光标 |
逆3体 | 主体 游戏对象自动以Inverse3身体方向旋转。 |
向量3 | 光标本地位置 获取Inverse3光标在设备本地空间中的位置(米)。 |
向量3 | 本地位置 |
向量3 | 游标位置 从CursorLocalPosition和 LocalToWorldMatrix 获取Inverse3光标的世界空间位置 |
向量3 | 职位 |
向量3 | 光标本地速度 获取Inverse3光标在设备本地空间的速度,单位为米/秒(m/s)。 |
向量3 | 本地速度 |
向量3 | 游标速度 从CursorLocalVelocity和 LocalToWorldMatrix 获取反 3游标世界空间速度 |
向量3 | 速度 |
联合3 | 关节角度 获取Inverse3设备的当前关节角度(度)。 |
联合3 | 关节角速度 获取Inverse3设备关节的当前角速度(单位:度/秒)。 |
手感类型 | 选定手度 获取或设置Inverse3设备所需的手度类型。 |
手感类型 | 手度 在运行时获取设备的手度类型。 |
bool | 有电 表示设备当前是否有电。 |
四元数 | 方向 根据上次接收到的方向数据,获取Inverse3设备的当前方向。 |
浮动 | 工作区半径 设备本地空间中工作区的大致半径,单位为米(m)。 |
浮动 | 工作空间缩放半径 工作空间在世界空间中的近似半径。 |
向量3 | 工作区中心左 HandednessType.Left-handed 设备的工作区中心本地坐标。 |
向量3 | 工作区中心右 HandednessType.Right-handed 设备的工作区中心本地坐标。 |
向量3 | 工作区中心局部位置 工作区中心的本地位置,取决于手感值。 |
向量3 | 工作区中心位置 工作区中心的世界位置,取决于手感值。 |
向量3 | 工作空间中心 |
控制模式 | 控制模式 获取设备当前的控制模式。 |
向量3 | 力输出 通过 CursorSetForce 或 CursorSetLocalForce 方法发送到设备的最后力值。 |
向量3 | 位置输出 通过 CursorSetPosition 或 CursorSetLocalPosition 方法发送到设备的最后位置。 |
联合3 | 关节点扭矩输出 通过 JointsSetTorque 方法发送到设备的最后扭矩。 |
联合3 | 关节角度输出 通过 JointsSetAngles 方法发送到设备的最后一个角度。 |
bool | 空间变换更新已启用 获取或设置空间变换矩阵更新是否启用的值。 |
矩阵4x4 | 本地到世界矩阵 将设备或光标空间转换为世界空间的矩阵。 |
矩阵4x4 | 世界到本地矩阵 从世界空间转换回设备或光标空间的矩阵。 |
受保护的财产
名称 | |
---|---|
覆盖基坐标转换器 | 坐标转换器 |
变革 | 空间变换参考 用于设置LocalToWorldMatrix和WorldToLocalMatrix 的参考变换。 |
公共属性
名称 | |
---|---|
UnityEvent< Inverse3 > | 就绪 当Inverse3设备连同光标和主体已成功初始化并可供使用时触发的事件。 |
UnityEvent< Inverse3, bool > | 电源状态改变 当Inverse3设备的电源状态发生变化时触发。 |
UnityEvent< Inverse3, ControlMode > | 控制模式改变 当设备的控制模式发生变化时触发的事件。 |
其他继承成员
继承自Haply.Inverse.Unity.DeviceBehaviour的公共事件
名称 | |
---|---|
Action< DeviceBehaviour, Ret > | 错误事件() |
连接状态代理 | 连接状态改变() 设备连接状态发生变化时触发的事件。 |
Action< DeviceBehaviour, DeviceConnectionState, DeviceConnectionState > | ConnectionStateChangedAsync() 设备连接状态改变后不久触发的事件。 |
继承自Haply.Inverse.Unity.DeviceBehaviour的公共函数
名称 | |
---|---|
代表 void | 连接状态代理(DeviceBehaviourdevice, DeviceConnectionState state, DeviceConnectionState prevState) 用于处理设备连接状态更改的代理。 |
空白 | 设置执行() 表示在下一帧执行设置。 |
继承自Haply.Inverse.Unity.DeviceBehaviour的受保护函数
名称 | |
---|---|
虚拟 void | 醒来() |
空白 | 开启() |
空白 | 禁用时() |
空白 | 销毁时() |
继承自Haply.Inverse.Unity.DeviceBehaviour的公共属性
名称 | |
---|---|
int | 所选设备标识 |
整数 | 设备 ID 获取设备 ID。 |
bool | 已就绪 指示设备是否已准备就绪可以使用。 |
设备连接状态 | 连接状态 获取或设置设备的当前连接状态。 |
bool | 是否已连接 获取设备是否已连接。 |
bool | 是否已打开 获取设备是否已打开。 |
继承自Haply.Inverse.Unity.DeviceBehaviour的受保护属性
名称 | |
---|---|
bool | 是否已设置光标 指示是否已设置光标。 |
继承自Haply.Inverse.Unity.DeviceBehaviour的公共属性
名称 | |
---|---|
const int | ANY_ID |
UnityEvent< DeviceBehaviour > | 设备打开 当ConnectionState过渡到 DeviceConnectionState.Opened 状态时触发的事件。 |
UnityEvent< DeviceBehaviour > | 设备关闭 当ConnectionState过渡到 DeviceConnectionState.Connected 状态时触发的事件。 |
继承自Haply.Inverse.Unity.DeviceBehaviour的受保护属性
名称 | |
---|---|
字符串 | 对象名称 |
详细说明
class Haply::Inverse::Unity::Inverse3;
代表 Inverse3 设备控制器,管理设备数据和状态更新。
该组件应附加到一个 GameObject 上,该 GameObject 代表Unity场景中的物理Inverse3设备。
公共活动文件
事件 DeviceStateChanged
DeviceDelegate DeviceStateChanged()
在每个触觉帧上触发的事件。
请参见 客户端配置.HapticPollFrequency(触觉轮询频率
它能实时更新光标的位置和速度。
该事件适用于需要持续跟踪光标状态或应用实时控制命令的应用程序。在此事件中,可以使用CursorPosition、CursorVelocity、CursorLocalPosition 或CursorLocalVelocity 等属性。
以及控制方法,如
- CursorSetForce对光标施加力、
- CursorSetPosition用来设置光标的位置、
- JointsSetTorque对设备关节施加扭矩,或
- JointsSetAngles用来设置设备关节的角度。
触发该事件的频率由触觉循环频率决定,可通过ClientConfiguration.HapticPollFrequency 进行配置。
事件 OrientationChangedAsync
Action< Inverse3 > OrientationChangedAsync()
当Inverse3设备的机身方向发生变化时触发。
公共函数文档
函数 DeviceDelegate
delegate void DeviceDelegate(
Inverse3 inverse3
)
代表处理Inverse3设备的Inverse3 .DeviceStateChanged事件的方法。
参数
- inverse3引发事件的Inverse3设备实例。
函数 RequestPowerSupplyStatus
void RequestPowerSupplyStatus()
请求更新当前电源状态(Powered),完成后触发PowerSupplyStatusChanged事件。
注意:频繁调用此方法(例如在更新循环中)可能会导致性能下降和触觉抖动。建议根据特定的用户操作或事件谨慎使用此方法,或使用DeviceMapperDeviceMapper.DeviceInfoPollingMode.Continuous模式。
函数 RequestOrientation
void RequestOrientation()
请求更新Inverse3主体的方向,完成后触发OrientationChangedAsync事件。
使用此方法可手动刷新设备的方向数据。如果设置了主体,其变换将根据新的方向自动更新。注意:频繁调用此方法(例如在更新循环中)可能会导致性能下降和触觉抖动。建议根据特定的用户操作或事件谨慎使用此方法,或使用DeviceMapperDeviceMapper.DeviceInfoPollingMode.Continuous模式。
函数 CursorSetLocalForce
void CursorSetLocalForce(
in Vector3 force
)
以牛顿(N)为单位,设置设备本地空间中沿 x、y 和 z 轴施加到光标上的力。
参数
- 力设备本地空间中以牛顿(N)为单位的所需力矢量。
例外情况:
- 当客户端连接未建立时抛出的InvalidOperationException 异常。
- 如果收到来自服务的意外错误,则抛出异常。
该方法将未经处理的力矢量直接发送到设备的本地空间,只能与CursorLocalPosition和CursorLocalVelocity 结合使用。如果力的计算基于世界空间坐标(CursorPosition和CursorVelocity)和/或涉及变换(位置、旋转或缩放)控制器,则应使用CursorSetForce代替。
产生力时,设备的 LED 灯会变绿。Inverse3设备总共可产生高达 10 N 的力,但在整个工作区内可实现的最大力有所不同。如果请求的力超出了设备的能力,它将在同一方向上产生最大可能的力,或者,如果启用了力缩放,则在保持方向相似的情况下,调整以提供可实现的最大力。将所有轴向的力设置为零时,光标上不会产生任何净力,但如果启用了重力补偿功能,光标仍将保持重力补偿状态。
函数 CursorSetLocalForce
void CursorSetLocalForce(
float x,
float y,
float z
)
函数 CursorSetForce
void CursorSetForce(
in Vector3 force
)
以牛顿(N)为单位设置世界空间中施加到光标上的力。
参数
- 力世界空间中以牛顿(N)为单位的期望力矢量。
该方法将所提供的力矢量从世界空间转换为设备的本地空间,然后再将其发送到设备。当力的计算基于世界空间坐标时,应使用该方法。如需直接控制本地空间,请使用CursorSetLocalForce。
函数 CursorSetForce
void CursorSetForce(
float x,
float y,
float z
)
函数 CursorSetLocalPosition
void CursorSetLocalPosition(
in Vector3 position
)
设置光标在设备本地空间中沿 x、y 和 z 轴的位置设定点,单位为米(m)。
参数
- position设备本地空间中以米(m)为单位的预期位置矢量。
例外情况:
- 当客户端连接未建立时抛出的InvalidOperationException 异常。
- 如果收到来自服务的意外错误,则抛出异常。
该方法设置一个位置设定点,将光标移动到指定位置。它将未经处理的位置直接发送到设备的本地空间。如果位置计算基于世界空间坐标(CursorPosition、CursorVelocity)和/或涉及变换(位置、旋转或缩放)控制器,则应考虑使用CursorSetPosition。
当处于位置控制模式时,设备的 LED 会变成蓝色。设置无法实现的位置会导致Inverse3设备臂缓慢下降或保持在当前位置。要退出位置控制模式,请施加一个力(可以为零)、使用TryResetForce或断开与设备的连接。
函数 CursorSetLocalPosition
void CursorSetLocalPosition(
float x,
float y,
float z
)
函数 CursorSetPosition
void CursorSetPosition(
in Vector3 position
)
以米(m)为单位设置光标在世界空间中的位置设定点。
参数
- position世界空间中以米(m)为单位的预期位置矢量。
在设置位置设定点之前,该方法会将所提供的位置从世界空间转换为设备的本地空间。该方法适用于基于世界空间坐标计算位置的情况。若要直接进行本地空间控制,请使用CursorSetLocalPosition 方法。
函数 CursorSetPosition
void CursorSetPosition(
float x,
float y,
float z
)
函数 JointsSetTorques
void JointsSetTorques(
Joint3 torques
)
以牛顿毫米 (Nmm) 为单位为Inverse3设备的每个关节设置所需的扭矩。
参数
- 扭矩每个设备接头的预期扭矩。
例外情况:
- 当 throwException 为真且客户端连接未建立时抛出的InvalidOperationException。
- 如果收到来自服务的意外错误,则抛出异常。
产生扭矩时,设备的 LED 灯会变绿。
Inverse3设备可在每个关节处产生高达 1000 Nmm 的扭矩。如果所需的扭矩超过这一限制,设备将产生最大扭矩。
函数 JointsSetTorques
void JointsSetTorques(
float t0,
float t1,
float t2
)
函数 JointsSetTorque
void JointsSetTorque(
Vector3 angles
)
函数 JointsSetTorque
void JointsSetTorque(
float x,
float y,
float z
)
函数 JointsSetAngles
void JointsSetAngles(
Joint3 angles
)
为Inverse3设备的每个关节设置所需的关节角度,单位为度 (°)。
参数
- 角度每个设备接头的预期角度。
例外情况:
- 当 throwException 为真且客户端连接未建立时抛出的InvalidOperationException。
- 如果收到来自服务的意外错误,则抛出异常。
为设备设置所需的关节角度。设置一个无法获得的角度将使设备移动到最接近物理上可获得的配置。例如,设置 (-90, 180, 0)
将设备移动到头部与身体平行、手臂与身体垂直的位置。
函数 JointsSetAngles
void JointsSetAngles(
float alpha0,
float alpha1,
float alpha2
)
函数 JointsSetAngles
void JointsSetAngles(
Vector3 angles
)
功能 释放
bool Release()
尝试重置光标的所有力和位置控制。
返回值如果强制重置成功,则返回 true;如果客户端连接未建立或发生意外错误,则返回 false。
如果 ClientConnection 已关闭,该方法不会抛出异常,因此适合在程序终止或 OnDisable 事件中使用。如果客户端连接未建立,或在重置力和位置控制时收到来自服务的意外错误,该方法将返回 false。
函数 TryResetForce
bool TryResetForce()
函数 TransformPoint
Vector3 TransformPoint(
Vector3 position
)
使用缓存的LocalToWorldMatrix 将位置从设备或光标的本地空间转换到世界空间。
参数
- 当地职位。
参见:本地到世界矩阵
返回:世界位置。
您可以使用InverseTransformPoint 执行从世界空间到本地空间的相反转换。
函数 TransformVector
Vector3 TransformVector(
Vector3 vector
)
使用缓存的LocalToWorldMatrix 将矢量从设备或光标的本地空间转换到世界空间。
参数
- 矢量本地矢量
参见:本地到世界矩阵
返回:世界矢量。
您可以使用反变换矢量(InverseTransformVector)进行相反的转换,即从世界空间转换到本地空间。
函数 InverseTransformPoint
Vector3 InverseTransformPoint(
Vector3 position
)
使用缓存的WorldToLocalMatrix 将位置从世界空间转换回设备或光标的本地空间。
参数
- 位置世界位置。
参见:世界到本地矩阵
返回:本地位置。
与TransformPoint 相反。
函数 InverseTransformVector
Vector3 InverseTransformVector(
Vector3 vector
)
使用缓存的WorldToLocalMatrix 将矢量从世界空间转换回设备或光标的本地空间。
参数
- 矢量世界矢量。
参见:世界到本地矩阵
返回:本地向量
与TransformVector 相反。
函数 ToString
override string ToString()
返回对象的字符串表示,提供人可读的描述,包括对象名称、类别类型、设备 ID 和所选手势。
返回值表示当前对象的字符串,包括名称、类别类型、设备 ID 和所选手性。
The returned string follows the format: "name <Class>(#id.handedness)", where:
- "名称 "是对象的
_objectName
field. - "类 "是对象的类类型名称。
- "id "是设备 ID,格式为 4 个字符的十六进制字符串,如果设备 ID 是
ANY_ID
.如果DeviceId
是ANY_ID
的值。SelectedDeviceId
使用。 - "手性 "是所选的手性,用".左 "或".右 "表示,或省略,如果
SelectedHandedness
是Nil
.
这种方法提供了简明翔实的对象描述,有助于调试和日志记录。
受保护函数文档
函数 InvokeReadyEvent
override void InvokeReadyEvent()
功能设置
virtual override void Setup()
一旦设置了 _performSetup 标志,该方法就会被自动调用,以处理因计算量过大而无法在每一帧调用的情况。 该方法可以覆盖,但要注意保持基本调用。使用SetSetupToPerform可触发设置调用。
重实现:Haply::Inverse::Unity::DeviceBehaviour::Setup
函数 FixedUpdate
virtual override void FixedUpdate()
重实现:Haply::Inverse::Unity::DeviceBehaviour::FixedUpdate
公共财产文件
属性 DeviceType
override DeviceType DeviceType;
获取设备类型,该控制器始终返回 DeviceType.Inverse3。
游标属性
override CursorBehaviour Cursor;
该属性覆盖基本的DeviceBehaviour.Cursor属性,并可安全地转换为Inverse3Cursor。设置此属性也会更新 DeviceBehaviour._performSetup 标志。
财产主体
Inverse3Body Body;
游戏对象自动以Inverse3主体方向旋转。
属性 CursorLocalPosition
Vector3 CursorLocalPosition;
获取Inverse3光标在设备本地空间中的位置,单位为米(m)。
设备DeviceBehaviour.ConnectionState必须先为 DeviceConnectionState.Opened,才能获得一致的值。
属性 本地位置
Vector3 LocalPosition;
属性 CursorPosition
Vector3 CursorPosition;
从CursorLocalPosition和 LocalToWorldMatrix 获取反 3游标的世界空间位置
参见:Transform.position,TransformPoint
物业位置
Vector3 Position;
属性 CursorLocalVelocity
Vector3 CursorLocalVelocity;
获取Inverse3光标在设备本地空间的速度,单位为米/秒(m/s)。
所提供的速度是通过速度估算算法计算得出的,无需进一步过滤或处理。
设备DeviceBehaviour.ConnectionState必须先为 DeviceConnectionState.Opened,才能获得一致的值。
属性 LocalVelocity
Vector3 LocalVelocity;
属性 CursorVelocity
Vector3 CursorVelocity;
从CursorLocalVelocity和 LocalToWorldMatrix 获取反 3游标的世界空间速度
速度属性
Vector3 Velocity;
属性 JointsAngles
Joint3 JointsAngles;
获取Inverse3设备当前的关节角度(单位:度)。
Vector3 的每个分量代表设备一个关节的角度:
- x:关节 1 的角度,用于控制设备的头部。
- y:关节 2 的角度,控制手臂的内侧关节。
- z:关节 3 的角度,控制手臂的外侧关节。
这些角度对于了解和控制设备运动部件的空间方位至关重要。
关节角速度属性
Joint3 JointsAngularVelocity;
获取Inverse3设备关节的当前角速度(单位:度/秒)。
Vector3 的每个分量代表设备一个关节的角速度:
- x:关节 1 的角速度,用于控制设备的头部。
- y:关节 2 的角速度,它控制手臂的内侧关节。
- z:关节 3 的角速度,它控制手臂的外侧关节。
角速度有助于监测关节的运动速度,这对动态控制和反馈应用至关重要。
属性
HandednessType SelectedHandedness;
获取或设置所需的Inverse3设备手度类型。
如果设置为 HandednessType.Nil,DeviceMapper 将在运行时选择找到的第一个设备。
使用 "手持度"可在运行时了解设备的真实手持度。
属性 Handedness
HandednessType Handedness;
在运行时获取设备的手度类型。
有动力的财产
bool Powered;
表示设备当前是否有电。
请参见 DeviceMapper.devicesInfoPollingMode
此属性不会实时刷新。可使用RequestPowerSupplyStatus 手动更新,或使用DeviceMapper 自动更新。
物业定位
Quaternion Orientation;
根据上次接收到的方向数据,获取Inverse3设备的当前方向。
请参见 DeviceMapper.devicesInfoPollingMode
此属性不会实时刷新。可通过RequestOrientation 手动更新,或由DeviceMapper 自动更新。
属性 工作区半径
float WorkspaceRadius;
设备本地空间中工作区的大致半径(米)。
属性 WorkspaceScaledRadius
float WorkspaceScaledRadius;
工作空间在世界空间中的大致半径。
属性 WorkspaceCenterLeft
static Vector3 WorkspaceCenterLeft = new(-0.05f, 0.15f, -0.12f);
HandednessType.Left-handed 设备的工作区中心本地坐标。
将光标设置在该局部位置,设备将移动到头部与身体平行、手臂与身体垂直的位置。
属性 WorkspaceCenterRight
static Vector3 WorkspaceCenterRight = new(0.05f, 0.15f, -0.12f);
HandednessType.Right-handed 设备的工作区中心局部坐标。
将光标设置在该局部位置,设备将移动到头部与身体平行、手臂与身体垂直的位置。
属性 工作空间中心局部位置
Vector3 WorkspaceCenterLocalPosition;
工作区中心的本地位置,取决于手感值。
如果 Handedness 为 HandednessType.Nil,则返回WorkspaceCenterRight。
将光标设置在该局部位置,设备将移动到头部与身体平行、手臂与身体垂直的位置。
属性 工作区中心位置
Vector3 WorkspaceCenterPosition;
工作区中心世界的位置取决于手感值。
如果 Handedness 为 HandednessType.Nil,则返回WorkspaceCenterRight。
将光标设置在该位置将移动设备,使其头部与身体平行,手臂与身体垂直。
属性 WorkspaceCenter
Vector3 WorkspaceCenter;
属性 ControlMode
ControlMode ControlMode;
获取设备的当前控制模式。
控制模式决定了设备如何响应输入命令和管理输出,如光标位置或关节扭矩。
属性 ForceOutput
Vector3 ForceOutput;
通过 CursorSetForce 或 CursorSetLocalForce 方法发送到设备的最后力。
属性 PositionOutput
Vector3 PositionOutput;
通过 CursorSetPosition 或 CursorSetLocalPosition 方法发送到设备的最后位置。
属性 JointsTorqueOutput
Joint3 JointsTorqueOutput;
通过 JointsSetTorque 方法发送到设备的最后扭矩。
属性 JointsAnglesOutput
Joint3 JointsAnglesOutput;
关节点设置角度方法发送到设备的最后一个角度。
属性 SpaceTransformationUpdateEnabled
bool SpaceTransformationUpdateEnabled = true;
获取或设置空间变换矩阵更新是否启用的值。
当设置为 true 时,UpdateSpaceTransformationCache 方法将被调用,以根据当前空间变换参照更新LocalToWorldMatrix 和WorldToLocalMatrix。这通常用于确保有关设备在世界上的位置和方向的空间计算是准确和最新的。
属性 LocalToWorldMatrix
Matrix4x4 LocalToWorldMatrix;
将设备或光标空间转换为世界空间的矩阵。
矩阵取决于SpaceTransformationReference。
该矩阵可用于将位置和速度从设备或光标的本地空间转换到世界空间。在无法直接获取变换组件数据的环境中,它可以准确地进行触觉相关计算。
属性 WorldToLocalMatrix
Matrix4x4 WorldToLocalMatrix;
从世界空间转换回设备或光标空间的矩阵。
矩阵取决于SpaceTransformationReference。
该矩阵可用于将计算出的力从世界空间转换到设备或光标的本地空间。在无法直接获取变换组件数据的环境中,它可以准确地进行触觉相关计算。
受保护财产文件
属性
override BaseCoordinateConverter CoordinateConverter;
属性 SpaceTransformationReference
Transform SpaceTransformationReference;
用于设置LocalToWorldMatrix和WorldToLocalMatrix 的参考变换。
如果设置了光标,则使用其父设备。否则使用当前设备转换。
公共属性文档
变量就绪
UnityEvent< Inverse3 > Ready;
当Inverse3设备连同光标和主体已成功初始化并可供使用时触发的事件。
如果启用了SpaceTransformationUpdateEnabled,则会在第一次更新后触发该事件。
变量 PowerSupplyStatusChanged
UnityEvent< Inverse3, bool > PowerSupplyStatusChanged;
当Inverse3设备的电源状态发生变化时触发。
参见:动力
变量 ControlModeChanged
UnityEvent< Inverse3, ControlMode > ControlModeChanged;
设备控制模式改变时触发的事件。
这样就可以实现反应式编程模式,控制模式的变化可以触发特定的行为或配置。