Skip to content

HandInfo

说明

类。

命名空间:EZXR.Glass.Inputs

继承自类 InputInfoBase。

描述

记录手的信息

public 属性

Transform root
手的所有关节等物体的父节点。
bool Enabled
全局手开关,与 EnableByExternal 互斥,由外部直接修改,如果置为 false 的话,Visibility 和 RaycastInteraction 将会失效,且被置为 false。
bool Visibility
设置或获得当前手的显示状态(仅仅影响显示,并不影响交互),如果 Enabled 为 false 则 Visibility 也将为 false。
bool RaycastInteraction
设置或获得远距离射线交互状态,如果 Enabled 为 false 则 Visibility 也将为 false。
bool TouchInteraction
设置或获得近距离交互状态,如果 Enabled 为 false 则 Visibility 也将为 false。
bool PhysicsInteraction
设置或获得手部的物理碰撞交互状态。
bool Exist
眼镜当前是否检测到这只手(不在视野内也是可以检测到的,如果需要在视野内的判定请调用 InView 方法)。
GestureType gestureType
当前手势类型。
Dictionary<HandJointType, Pose> jointsPose
所有手指关节点的 Pose。
Transform palm
手掌 Transform。
Vector3 palmNormal
手掌面向的方向。
Vector3 palmDirection
手掌指尖朝向(从手腕点到中指和无名指根节点中间点的朝向,世界坐标系)。
bool preCloseContacting
在手的近距离交互预判区内是否存在物体,只是在手的触发区域内但是还没有碰到食指指尖(主要用于避免在手即将触摸到旋转握把的时候会出现射线射到另外一个握把或者缩放角)。
Transform preCloseContactingTarget
手部近距离交互预判区(TriggerForFarNearSwitch 中定义区域大小,此区域内则认为用户要近距离抓取)内存在的距离最近的物体。
Transform PreCloseContactingTarget
手部近距离交互预判区内存在的距离最近的物体。
Renderer preCloseContactingTarget_Renderer
手部近距离交互预判区内存在的距离最近的物体的 Renderer。
MaterialPropertyBlock preCloseContactingTarget_PropertyBlock
手部近距离交互预判区内存在的距离最近的物体的 MaterialPropertyBlock。
Transform last_PreCloseContactingTarget
上一帧手部近距离交互预判区内存在的距离最近的物体。
Transform Last_PreCloseContactingTarget
上一帧手部近距离交互预判区内存在的距离最近的物体。
Renderer last_PreCloseContactingTarget_Renderer
上一帧手部近距离交互预判区内存在的距离最近的物体的 Renderer。
MaterialPropertyBlock last_PreCloseContactingTarget_PropertyBlock
上一帧手部近距离交互预判区内存在的距离最近的物体的 MaterialPropertyBlock。
bool IsCloseContacting
指示手是否正在近距离触碰某个物体(被拇指和食指指尖的连线穿过)
Collider CurCloseContactingTarget
当前正在被近距离触碰的物体
bool IsContacting
指示手是否正在近距离触碰某个物体或者射线是否正射在某个物体上
Collider CurContactingTarget
当前正在被触碰的物体(无论射线还是近距离)

public 方法

void Init(InputType inputType, HandType handType)
初始化手信息,SDK 内部使用,开发者不需要直接使用
void UpdateHandInfoData(NativeSwapManager.HandTrackingData handTrackingData)
同步更新手信息,SDK 内部使用,开发者不需要直接使用
bool InView(HandJointType jointType)
当前手节点是否在视野内。
返回值:true,在视野内;false,不在视野内。
参数:HandJointType jointType,指定关节点。
bool InLeftView(HandJointType jointType)
当前手节点是否在左边视野内。
返回值:true,在视野内;false,不在视野内。
参数:HandJointType jointType,指定关节点。
bool InRightView(HandJointType jointType)
当前手节点是否在右边视野内。
返回值:true,在视野内;false,不在视野内。
参数:HandJointType jointType,指定关节点。
bool IsPalmFacingHead(float angle = 90)
手掌正在朝向头部,如果手掌朝向和手掌与头的连线的夹角小于 angle 则认为手掌是朝向了头部。
返回值:true,手掌朝向头部;false,手掌朝向头部。
参数:float angle,指定的夹角阈值,默认 90 度,可以调整更小以获得更严格的判定条件。
bool JointDataExist(HandJointType handJointType)
判断关节点数据是否存在。
返回值:true,数据存在;false,数据不存在。
参数:HandJointType jointType,指定关节点。
Pose GetJointData(HandJointType handJointType)
获取指定关节点的 Pose。
返回值:指定关节点的 Pose,不存在就返回 Pose.identity。
参数:HandJointType jointType,指定关节点。
Pose GetJointData(int handJointTypeID)
获取指定关节点的 Pose。
返回值:指定关节点的 Pose,不存在就返回 Pose.identity。
参数:指定关节点的序号,参考 HandJointType。