Skip to content

SpatialObject

说明

类。

命名空间:EZXR.Glass.Inputs

继承自类 MonoBehaviour。

描述

射线或手柄在空间中交互的实体。

使用 SpatialObject 的 Transform,不推荐直接通过这是 transform 的 pose 改变位置和旋转等信息,建议通过 SetPosition(), SetRotation(), SetScale()设置。

SpatialObject 需要配合 Collider 一起使用,不可以移除对象的 Collider 组件。

SpatialObject 提供了十五种事件回调,可以通过 Inspector 面板进行添加响应。

Event
说明
触发次数
OnHandTriggerEnter
当手近距离接触物体的时候触发。
仅在接触的瞬间触发一次。
OnHandTriggerStay
当手近距离持续接触物体的时候触发。
每个 Physics 循环触发一次。
OnHandTriggerExit
当手近距离接触物体后离开的时候触发。

仅在脱离接触的瞬间触发一次。
OnHandTriggerGrab
当手近距离且捏合了拇指和食指或者握拳的时候触发。
每个 Physics 循环触发一次。

OnHandTriggerRelease
当手近距离抓取然后松开物体的时候触发。
仅在松开手的瞬间触发一次。
OnHandRayEnter
当手远距离射线接触物体的时候触发。
在接触的瞬间触发一次。
OnHandRayStay
当手远距离射线持续接触物体的时候触发。
每个 Physics 循环触发一次。
OnHandRayExit
当手远距离射线接触物体后离开的时候触发。
仅在脱离接触的瞬间触发一次。
OnHandRayGrab
当手远距离射线接触物体且捏合了拇指和食指或者握拳的时候触发。
每个 Physics 循环触发一次。
OnHandRayRelease
当手远距离射线抓取然后松开物体的时候触发。
仅在松开手的瞬间触发一次。
OnHandEnter
当手近距离接触或远距离射线接触物体的时候触发。
在接触的瞬间触发一次。
OnHandStay
当手近距离接触或远距离射线持续接触物体的时候触发。
每个 Physics 循环触发一次。
OnHandExit
当手近距离接触或远距离射线接触物体后离开的时候触发。
仅在脱离接触的瞬间触发一次。
OnHandGrab
当手近距离或远距离射线接触物体且(捏合了拇指和食指或者握拳)的时候触发。
每个 Physics 循环触发一次。
OnHandRelease
当手近距离接触或远距离射线抓取然后松开物体的时候触发。
仅在松开手的瞬间触发一次。

public 属性

bool isStaticObject
设置是否为静态对象,设置为静态对象后,不可再被移动旋转缩放。
bool freezePosition_X
设置是否冻结 X 轴位置,冻结后 X 轴的位置不可移动,世界坐标系。
bool freezePosition_Y
设置是否冻结 Y 轴位置,冻结后 Y 轴的位置不可移动,世界坐标系。
bool freezePosition_Z
设置是否冻结 Z 轴位置,冻结后 Z 轴的位置不可移动,世界坐标系。
bool freezeRotation
设置是否冻结旋转,冻结后不可再被旋转。
bool freezeScale_X
设置是否冻结 X 轴缩放,自身坐标系。
bool freezeScale_Y
设置是否冻结 Y 轴缩放,自身坐标系。
bool freezeScale_Z
设置是否冻结 Z 轴缩放,自身坐标系。

public 方法

void SetPosition(Vector3 pos)
设置位置。
如果被设定为静态,或冻结了移动,就只能设置可以移动的轴,或者不能被移动。
参数:新的坐标。
void SetRotation(Quaternion rot)
设置旋转。
如果被设定为静态,或冻结了旋转,就不能被旋转。
参数:新的旋转四元数。
void SetScale(Vector3 scale)
设置缩放。
如果被设定为静态,或冻结了缩放,就不能被缩放。
参数:新的缩放值。
void SetTransform(Vector3 pos, Quaternion rot, Vector3 scale)
设置变换。
如果被设定为静态,将不可设置,不受冻结移动,旋转,缩放的影响。
参数:新的坐标,新的旋转四元数,新的缩放值。