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 int | ANY_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;
获取设备类型。
如果设备映射器尚未设置,可以是 Inverse.DeviceType.Inverse3、Inverse.DeviceType.VerseGrip 或 Inverse.DeviceType.Nil。
属性 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;