跳至主要内容
版本: 2.2.0

Haply::Inverse::Unity::DeviceBehaviour

代表逆设备的基类,提供通用功能和状态管理。

继承于 MonoBehaviour

由Haply.Inverse.Unity 继承。Inverse3,Haply.Inverse.Unity.VerseGrip

公共活动​

名称
Action< DeviceBehaviour, Ret >错误事件()
连接状态代理连接状态改变()
设备连接状态发生变化时触发的事件。
Action< DeviceBehaviour, DeviceConnectionState, DeviceConnectionState >ConnectionStateChangedAsync()
设备连接状态改变后不久触发的事件。

公共职能​

名称
代表 void连接状态代理(DeviceBehaviourdevice, DeviceConnectionState state, DeviceConnectionState prevState)
用于处理设备连接状态更改的代理。
空白设置执行()
表示在下一帧执行设置。
覆盖字符串ToString()
返回对象的字符串表示,提供人可读的描述,包括对象名称、类类型和设备 ID。

受保护的功能​

名称
空白调用就绪事件()
调用就绪事件。
虚拟 void设置()
一旦设置了 _performSetup 标志,该方法就会被自动调用,以处理过于繁重的计算消耗,而无法在每一帧中调用。
虚拟 void醒来()
空白开启()
空白禁用时()
空白销毁时()
虚拟 void固定更新()

公共财产​

名称
设备类型设备类型
获取设备类型。
int所选设备标识
整数设备 ID
获取设备 ID。
bool已就绪
指示设备是否已准备就绪可以使用。
游标行为游标
获取或设置与设备关联的CursorBehaviour。
设备连接状态连接状态
获取或设置设备的当前连接状态。
bool是否已连接
获取设备是否已连接。
bool是否已打开
获取设备是否已打开。

受保护的财产​

名称
基坐标转换器坐标转换器
bool是否已设置光标
指示是否已设置光标。

公共属性​

名称
const intANY_ID
UnityEvent< DeviceBehaviour >设备打开
当ConnectionState过渡到 DeviceConnectionState.Opened 状态时触发的事件。
UnityEvent< DeviceBehaviour >设备关闭
当ConnectionState过渡到 DeviceConnectionState.Connected 状态时触发的事件。

受保护属性​

名称
字符串对象名称

公共活动文件​

事件 ErrorEvent​

Action< DeviceBehaviour, Ret > ErrorEvent()

事件 ConnectionStateChanged​

ConnectionStateDelegate ConnectionStateChanged()

设备连接状态发生变化时触发的事件。

事件 ConnectionStateChangedAsync​

Action< DeviceBehaviour, DeviceConnectionState, DeviceConnectionState > ConnectionStateChangedAsync()

设备连接状态改变后不久触发的事件。

参见:连接状态已更改

该事件在主线程上派发,因此可以安全地与Unity场景对象和 UI 元素进行交互。请注意,设备状态是在单独的高频线程上更新的,因此事件发生时的状态可能与处理事件时的当前状态略有不同。如果需要更精确的结果,请使用ConnectionStateChanged事件。

公共函数文档​

函数 ConnectionStateDelegate​

delegate void ConnectionStateDelegate(
DeviceBehaviour device,
DeviceConnectionState state,
DeviceConnectionState prevState
)

处理设备连接状态更改的代理。

参数

  • 设备的新状态。
  • prevState设备之前的状态。
  • 设备引发事件的设备实例。

函数 SetSetupToPerform​

void SetSetupToPerform()

表示在下一帧执行设置。

参见:设置

函数 ToString​

override string ToString()

返回对象的字符串表示,提供人可读的描述,包括对象名称、类类型和设备 ID。

返回值表示当前对象的字符串,包括名称、类类型和设备 ID。

The returned string follows the format: "name <Class>(#id)", where:

  • "名称 "是对象的 _objectName field.
  • "类 "是对象的类类型名称。
  • "id "是设备 ID,格式为 4 个字符的十六进制字符串,如果设备 ID 是 ANY_ID.如果 DeviceId 是 ANY_ID的值。 SelectedDeviceId 使用。

这种方法提供了简明翔实的对象描述,有助于调试和日志记录。

受保护函数文档​

函数 InvokeReadyEvent​

void InvokeReadyEvent()

调用就绪事件。

当IsReady属性的值变为 true 时,该方法会被IsReady属性自动调用。派生类必须执行该方法才能触发相应事件。

当设备完全初始化并准备就绪时,派生类中的IsReady属性必须设置为 true。

功能设置​

virtual void Setup()

一旦设置了 _performSetup 标志,该方法就会被自动调用,以处理因计算量过大而无法在每一帧中调用的计算。

由 Haply::Inverse::Unity::Inverse3::Setup重新实现

该方法可以覆盖,但要注意保留基本调用。使用SetSetupToPerform可触发设置调用。

功能 唤醒​

virtual void Awake()

函数 OnEnable​

void OnEnable()

函数 OnDisable​

void OnDisable()

函数 OnDestroy​

void OnDestroy()

函数 FixedUpdate​

virtual void FixedUpdate()

由以下内容重新实现:Haply: :Inverse::Unity::Inverse3::FixedUpdate

公共财产文件​

属性 DeviceType​

DeviceType DeviceType;

获取设备类型。

Inverse3 、Inverse.DeviceType.VerseGrip 或 Inverse.DeviceType.Nil(如果DeviceMapper 尚未设置)。

属性 SelectedDeviceId​

int SelectedDeviceId;

属性 DeviceId​

uint DeviceId;

获取设备 ID。

属性 IsReady​

bool IsReady;

表示设备是否可以使用。

游标属性​

CursorBehaviour Cursor;

获取或设置与设备关联的CursorBehaviour。

属性 ConnectionState​

DeviceConnectionState ConnectionState;

获取或设置设备的当前连接状态。

设备可以处于 DeviceConnectionState.Disconnected、DeviceConnectionState.Connected 或 DeviceConnectionState.Opened 状态。更改状态会触发相应的事件和状态更改通知。

属性 IsConnected​

bool IsConnected;

获取设备是否已连接。

属性 IsOpened​

bool IsOpened;

获取设备是否已打开。

受保护财产文件​

属性​

BaseCoordinateConverter CoordinateConverter;

属性 IsCursorSet​

bool IsCursorSet;

表示是否已设置光标。

该属性有助于优化光标存在性的检查,因为在Unity 中直接与空值进行比较的代价会很高。

公共属性文档​

变量 ANY_ID​

static const int ANY_ID = 0;

变量 DeviceOpened​

UnityEvent< DeviceBehaviour > DeviceOpened;

当ConnectionState过渡到 DeviceConnectionState.Opened 状态时触发的事件。

参见:连接状态已更改

这表明设备已准备就绪,所有必要数据(如DeviceId和Inverse3.Handedness)均已正确初始化。根据设备类型,作为第一个参数传递的DeviceBehaviour(设备行为)实例可以被转换为相应的类型,即 Inverse3或VerseGrip。

该事件在主线程上派发,因此可以安全地与Unity场景对象和 UI 元素进行交互。请注意,设备状态是在单独的高频线程上更新的,因此事件发生时的状态可能与处理事件时的当前状态略有不同。如果需要更精确的结果,请使用ConnectionStateChanged事件。

变量 DeviceClosed​

UnityEvent< DeviceBehaviour > DeviceClosed;

当ConnectionState过渡到 DeviceConnectionState.Connected 状态时触发的事件。

参见:连接状态已更改

这表明设备已无法使用。根据设备类型,作为第一个参数传递的DeviceBehaviour(设备 行为)实例可以被转换为相应的类型,即 Inverse3或VerseGrip。

该事件在主线程上派发,因此可以安全地与Unity场景对象和 UI 元素进行交互。请注意,设备状态是在单独的高频线程上更新的,因此事件发生时的状态可能与处理事件时的当前状态略有不同。如果需要更精确的结果,请使用ConnectionStateChanged事件。

受保护属性文档​

变量 _objectName​

string _objectName;