Skip to content

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 的时候触发此事件