2016-09-07 2 views
2

콘텐츠 패널 아래에 몇 개의 버튼이 하위 요소로 포함 된 스크롤보기가 있습니다. 내가있는 ScrollView에 부착 내 스크립트에이 같은 OVRTouchpad.TouchHandler 이벤트를 구현 한Oculus Gear에서 스 와이프를 처리하는 방법 VR 터치 패드 피하기 탭 이벤트

: 계층 구조는 다음과 같습니다

void Start() 
{ 
    #if OVR && !UNITY_EDITOR 
    OVRTouchpad.Create(); 
    OVRTouchpad.TouchHandler += HandleTouchHandler; 
    #endif 
} 

void HandleTouchHandler (object sender, System.EventArgs e) 
{ 
    OVRTouchpad.TouchArgs touchArgs = (OVRTouchpad.TouchArgs)e; 
    if(touchArgs.TouchType == OVRTouchpad.TouchEvent.Left || touchArgs.TouchType == OVRTouchpad.TouchEvent.Up) 
    { 
     // Code to scroll UP for swipe in directions LEFT/UP 
    } 
    else if(touchArgs.TouchType == OVRTouchpad.TouchEvent.Right || touchArgs.TouchType == OVRTouchpad.TouchEvent.Down) 
    { 
     // Code to scroll DOWN for swipe in directions RIGHT/DOWN 
    } 
} 

문제 :

내가 OVR Input Muodule을 사용하고, 그것은 스 와이프하려고해도 Tap 입력이 처리됩니다. 그래서 언제나 버튼 (스크롤보기의 자식)을 바라 보면서 어떤 방향 으로든 스 와이프합니다. 버튼을 클릭하면 다른 메뉴로 이동합니다. 기어 VR 입력 시스템이 원하는 동작인지 확실하지 않습니다. Oculus Home App (및 상점의 다른 앱)에서 보았 듯이 하위 요소에 대한 클릭을 트리거하지 않고 스크롤 만합니다.

스 와이프가 감지되면 클릭/탭을 방지 할 수있는 방법이 있습니까?

모든 종류의 도움을 주실 수 있습니다.

+0

당신이 [마력 개발자 포럼에서 유니티 섹션]에 게시한다 (https://forums.oculus.com/ 개발자/카테고리/화합). –

+0

감사합니다. 거기에 질문을 올렸습니다. –

+1

답변을 얻은 경우 여기에 답변을 게시하고 완료로 표시하십시오. –

답변

0

먼저 싱글 렛 트리거를 처리하기 위해 IF 문을 삽입 해 보았습니까?

if(touchArgs.TouchType == OVRTouchpad.TouchEvent.SingleTap) 
    { 
    //TODO: Nest IF statements here checking conditions which indicate swipe instead of tap. If nothing further detected, process single tap. 
    //Otherwise continue with swipe direction handling. 
    } 

그러나 그것은 너무 방향 입력과 와이프를 처리 할 수있는 아마 가장 좋은 것이 튜토리얼에서 언급 한 VRInput 스크립트를 이용하여 상기된다.

https://unity3d.com/learn/tutorials/topics/virtual-reality/interaction-vr

SNIPPIT : 당신이 아직하지 않은 경우

public event Action<SwipeDirection> OnSwipe;    // Called every frame passing in the swipe, including if there is no swipe. 
+1

일부 버튼에 포인터가 있으면 마우스 클릭과 마찬가지로 이벤트 시스템에서 탭을 받기 때문에 문제가 발생합니다. 나는 그것을 막고 싶다. –

+0

해당 탭 트리거에 개입하여 처리하거나 다른 이벤트 시스템/방법을 사용하십시오. VR 입력은 더 나은 제어를 위해 가장 유망한 것으로 보입니다. 터치 패드에서 손가락을 뗄 때 손가락의 위치를 ​​기록하여 손가락이 스 와이프인지 탭인지 확인합니다. 니가 필요로하는 것처럼. –

+0

Unity UI로 작업 할 때 다른 이벤트 시스템을 사용할 수 없습니다. 상자 콜리 더가있는 수동 단추를 만들지는 않은 경우. –