好吧,我的问题是oculus触摸板使用相同的握柄控件来确定隐形眼镜的传送/瞄准和拾取对象。我不想更改控件,因为它们很直观,但是我不能像现在当他们拾起一个物体时那样随机地进行传送。
Oculus标准的Locomotion Teleport类中没有禁用功能,我已经尝试过这样禁用它:
private void Update()
{
locomotionTeleport = GameObject.FindObjectOfType<LocomotionTeleport>();
// print(GameObject.FindObjectsOfType<OVRGrabber>()[0].isGrabbing || GameObject.FindObjectsOfType<OVRGrabber>()[1].isGrabbing);
locomotionTeleport.enabled = !(GameObject.FindObjectsOfType<OVRGrabber>()[0].isGrabbing || GameObject.FindObjectsOfType<OVRGrabber>()[1].isGrabbing);
}
我在哪里跟踪对象是否在OVRGrabbers中被抓取:
void OnTriggerEnter(Collider otherCollider)
{
// Get the grab trigger
OVRGrabbable grabbable = otherCollider.GetComponent<OVRGrabbable>() ?? otherCollider.GetComponentInParent<OVRGrabbable>();
if (grabbable == null) return;
if(grabbable != null)
{
isGrabbing = true;
}
但是这什么也没做。我没有尝试在瞬移类中设置bool标志做任何事情。如果物体被拾取后又能重新启用,该如何防止传送?