跳至主要内容
版本: 2.1.1

Haply::Inverse::Unity::DeviceBehaviour

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

继承于 MonoBehaviour

Haply.Inverse.Unity. Inverse3Haply.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。
游标行为游标
获取或设置与设备关联的CursorBehaviour
设备连接状态连接状态
获取或设置设备的当前连接状态。
bool是否已连接
获取设备是否已连接。
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.如果 DeviceIdANY_ID的值。 SelectedDeviceId 使用。

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

受保护函数文档

功能设置

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;

获取设备类型。

如果设备映射器尚未设置,可以是 Inverse.DeviceType.Inverse3、Inverse.DeviceType.VerseGrip 或 Inverse.DeviceType.Nil。

属性 SelectedDeviceId

int SelectedDeviceId;

属性 DeviceId

uint DeviceId;

获取设备 ID。

游标属性

CursorBehaviour Cursor;

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

属性 ConnectionState

DeviceConnectionState ConnectionState;

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

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

属性 IsConnected

bool IsConnected;

获取设备是否已连接。

属性 IsOpened

bool IsOpened;

获取设备是否已打开。

属性 IsReady

bool IsReady;

受保护财产文件

属性

BaseCoordinateConverter CoordinateConverter;

属性 IsCursorSet

bool IsCursorSet;

表示是否已设置光标。

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

公共属性文档

变量 ANY_ID

static const int ANY_ID = 0;

变量 DeviceOpened

UnityEvent< DeviceBehaviour > DeviceOpened;

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

参见连接状态已更改

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

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

变量 DeviceClosed

UnityEvent< DeviceBehaviour > DeviceClosed;

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

参见连接状态已更改

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

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

受保护属性文档

变量 _objectName

string _objectName;