사용자 도구

사이트 도구


language:unity:3-스마트폰

swipe 인식 방법

다른 인터페이스를 못찾아서 우선 이 방법으로.

좌 <<->> 우

좌에서 우, 또는 그 반대를 인식하기 위해서.

  • 터치를 감지할 오브젝트 추가는 따로 하고.

터치를 감지할 오브젝트에 스크립트를 추가하고, OnPress() 함수를 추가한다.

  • UICamera.currentTouch.pos : NGUI 이벤트 상에서 터치가 발생된 위치를 저장
  • UICamera.currentTouch.totalDelta : OnPress(true)(=마우스 버튼 다운) 이벤트 이후,
    OnPress(false)(=마우스 버튼 업)가 발생된 타이밍에 이동된 좌표량을 보여준다.
void OnPress( bool isPressed )
{
  // OnPress가 눌렸을때의 좌표 값을 출력해본다.
  Debug.Log( "OnPress >> " + isPressed.ToString() + 
    ", UICamera.currentTouch.pos >> " + UICamera.currentTouch.pos.ToString() + 
    ", UICamera.currentTouch.totalDelta >> " + UICamera.currentTouch.totalDelta.ToString() );
 
// 이렇게 하면, 인식은 된다.
if( isPressed == false ) {
  if( UICamera.currentTouch.totalDelta.x > 150f &&
    Mathf.Abs(UICamera.currentTouch.totalDelta.y) <= 15 )
    Debug.Log( "Swipe OK" );
  }
}

간단히는 OnPress(false)일때 UICamera.currentTouch.totalDelta 값만 확인해도 (좌 «→> 우)스와이프 확인이 가능할 것 같다. 위 아래도 큰 문제는 없을 듯 하고..

전체 화면을 대상으로 하는 인식은 어떻게 하나... 화면 크기의 오브젝트를 만들어야 하나?
  • 화면 크기만큼 오브젝트 크기를 조정하는 것은 UIScale로 가능

에디터의 해상도 설정 화면

language/unity/3-스마트폰.txt · 마지막으로 수정됨: 2024/04/23 22:44 저자 127.0.0.1