본문 바로가기

프로그래밍/Unity

터치 입력

* unity3d 관련 포스팅은 개인적인 정리용도임.

대부분 레퍼런스상의 내용과 자주 사용될(?)만한 녀석들에 대한 내용만 기술.

   

   

   

1. 입력 확인

unity3d 에서 터치 입력을 위해 Touch 라는 객체를 제공한다.

다른 입력과 마찬가지로 Input 객체를 통해 입력된 객체를 받아올 수 있는데,

터치의 경우 Touch 객체가 반환된다.

   

멀티터치의 경우 Touch 배열이 반환되므로, 다양하게 사용할 수 있다.

   

// 가장 처음의 터치 입력을 가져오는 경우.

Touch touch = Input.touches[0];

   

foreach를 사용해 모든 터치를 가져와 처리할 수 있다.(레퍼런스)

int fingerCount = 0;

foreach( Touch touch in Input.touches ) {

if( touch.phase != TouchPhase.Ended && touch.phase != TouchPhase.Canceled )

fingerCount++;

}

   

   

2. 터치 상태

Touch 객체의 phase 변수에 입력된 터치의 상태 정보가 전달된다.

TouchPhase phase;

   

if( touch.phase == TouchPhase.Began ) {

}

   

상태정보는 아래와 같다.

TouchPhase.Began

TouchPhase.Moved

TouchPhase.Stationary

TouchPhase.Ended

TouchPhase.Canceled

   

3. 터치 위치

역시 Touch 객체의 Vector2 position; 에 전달된다.

   

4. 터치 인덱스

멀티 터치의 경우 각 터치를 구분하기 위해 인덱스 정보를 사용한다.

역시 Touch 객체에 해당 변수가 존재한다.

int fingerId;