Хорошо, моя проблема в том, что сенсорные панели oculus используют те же элементы управления рукояткой для определения телепортации / прицеливания и захвата объектов. Я не хочу менять элементы управления, потому что они интуитивно понятны, но у меня не может быть случайной телепортации, как это происходит сейчас, когда они поднимают объект.
В стандартном классе Locomotion Teleport класса Oculus нет функции отключения, и я попытался отключить ее следующим образом:
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 в классе телепортации ничего не делает Как я могу предотвратить телепортацию, если объект забирают, а затем снова включают?