Appearance
InputInfoBase
说明
类。
命名空间:EZXR.Glass.Inputs
继承自 MonoBehaviour。
描述
输入信息,一般指手势或者手柄。并管理交互。
public 静态属性
bool IsTwoHandRayGrabbing | 正在执行双手射线抓取操作 |
---|---|
bool IsTwoHandCloseGrabbing | 正在执行双手近距离抓取操作 |
Vector3 LeftGrabPointPosition | 用于双手,左手当前捏住物体拖动的目标坐标点 |
Vector3 RightGrabPointPosition | 用于双手,右手当前捏住物体拖动的目标坐标点 |
public 属性
InputType InputType | 控制器类型:头控、手势、手柄 |
---|---|
HandType HandType | 这个 HandInfo 是属于左手还是右手,0 为左手,1 为右手 |
bool IsPinching | 当前手是否在做捏合动作 |
bool StartPinch | 手开始做捏合动作(仅仅开始捏合的帧为 true) |
bool EndPinch | 手结束做捏合动作(仅仅结束捏合的帧为 true) |
Vector3 RayPoint_Start | 手的射线起始点 |
Pose RayPoint_End | 手的射线终止点 |
Vector3 RayDirection | 从射线起始点到终止点的射线方向(单位向量) |
Vector3 GrabPositionLocal | 捏合时刻抓住的点在被抓住的物体的局部坐标系下的坐标 |
bool IsDragging | 手正在拖拽 |
bool Exist | 交互实体(手/手柄)是否存在。 Virtual 属性,子类可能会覆盖实现,详细参考具体子类。 |
bool IsRayContacting | 指示当前射线是否正射在某个物体上 |
Collider CurRayContactingTarget | 当前射线碰到的 Collider(仅仅是射线碰到,并不是射线抓取) |
Renderer curRayContactingTarget_Renderer | 当前射线碰到的物体的 Renderer。 |
MaterialPropertyBlock curRayContactingTarget_PropertyBlock | 当前射线碰到的物体的 MaterialPropertyBlock。 |
Collider LastRayContactingTarget | 射线上一次碰到的 Collider |
Renderer lastRayContactingTarget_Renderer | 上一次射线碰到的物体的 Renderer。 |
MaterialPropertyBlock curRayContactingTarget_PropertyBlock | 上一次射线碰到的物体的 MaterialPropertyBlock。 |
bool IsRayGrabbing | 指示手正在通过射线拖拽物体 |
Transform RayGrabbingTarget | 当前射线正在抓取的物体(非旋转手柄或者缩放角) |
SpatialObject RayGrabbingSpatialObject | 当前射线正在抓取的 SpatialObject |
bool IsCloseGrabbing | 指示手正在通过近距离抓取的方式拖拽物体 |
Transform CloseGrabbingTarget | 当前正在近距离抓取的 Transform(非旋转手柄或者缩放角) |
SpatialObject CloseGrabbingSpatialObject | 当前正在近距离抓取的 SpatialObject |
bool IsGrabbing | 手当前是否正在抓取物体(无论射线还是近距离) |
Transform GrabbingTarget | 得到当前手正在抓取的物体(无论射线还是近距离) |
Transform lastPointingObject | 上一次射线点击的 Transform |
bool IsRayPressing | 仅用于非 SpatialObject 物体,指示手正在通过射线点击非 SpatialObject,会向这种物体发送 pointerDownHandler 事件,通常用于 UGUI 这类的点击 |
Transform CurPressingObject | 当前选中(按下动作)的对象 |
bool Visibility | 设置或获得当前手的显示状态(仅仅影响显示,并不影响交互) Virtual 属性,子类可能会覆盖实现,详细参考具体子类。 |
bool RaycastInteraction | 设置或获得远距离射线交互状态 Virtual 属性,子类可能会覆盖实现,详细参考具体子类。 |
bool TouchInteraction | 设置或获得近距离交互状态 Virtual 属性,子类可能会覆盖实现,详细参考具体子类。 |
bool PhysicsInteraction | 设置或获得手部的物理碰撞交互状态 Virtual 属性,子类可能会覆盖实现,详细参考具体子类。 |
bool isCloseContactingUGUI | 当前是否切换到近距离触摸 UGUI 模式 |
public 方法
bool IsPalmFacingHead(float angle = 90) | 判断手掌是否正在朝向头部。 abstract 方法,详细参考具体子类。 |
---|---|
void Init(InputType inputType, HandType handType) | 初始化,设置当前输入设备的类型以及所属的手是左手还是右手。 Virtual 方法,子类可能会覆盖实现,详细参考具体子类。 |
void SetCurRayContactingTarget(Collider other, bool isUI = false) | 由 HandRaycast 调用此处来设置当前射线射击到的目标。 参数:other,射线打到的 Collider;isUI,射线打到的是否是 UI,默认 false。 |
bool GetRayLineState() | 获取射线状态。 返回值:true,射线显示状态;false,射线隐藏状态。 Virtual 方法,子类可能会覆盖实现,详细参考具体子类。 |
事件
event Action<Collider, bool> Event_GetRayCastResult | 射线碰到 Collider 的时候触发此事件 |
---|---|