유니티(UNITY) / 모바일 터치 코드 요약

댓글수0 다음블로그 이동

유니티

유니티(UNITY) / 모바일 터치 코드 요약

Huga Gage
댓글수0

유니티에 관심이 있다니 놀랍군요!!

 

모바일 스크린에서 터치를 인식하는 코딩을 간략하게 정리해 보았습니다.

 

1. 터치된 손가락 갯수 인식하기

   // 손가락 터치가 1개 일때

   if(Input.touchCount == 1){   ...   }

 

  // 손가락 터치가 2개 이상일때

   if(Input.touchCount >= 2){   ...   }

 

   // 손가락 터치가 오직 1개일때만

   if(Input.touchCount < 2){   ...  }

 

2. 터치의 단계는 5가지

   // 터치가 시작되었을 때

   if(Input.GetTouch(0).phase == TouchPhase.Began){  ... }

 

   // 터치된 손가락이 움직일 때

   if(Input.GetTouch(0).phase == TouchPhase.Moved){ ... }

 

   // 터치된 손가락이 그자리에 가만히 있을 때

   if(Input.GetTouch(0).phase == TouchPhase.Stationary){ ... }

 

   // 터치된 손가락이 스크린에서 떨어질 때

   if(Input.GetTouch(0).phase == TouchPhase.Ended){ ... }

 

   // 모바일폰을 귀에 갖다 대거나 touch tracking을 수행하지 않아야 할 경우에

   if(Input.GetTouch(0).phase == TouchPhase.Canceled){ ... }

 

3. 터치의 응용

   // 손가락 두 개가 움직일 때

   if(Input.GetTouch(0).phase == TouchPhase.Moved && Input.GetTouch(1).phase == TouchPhase.Moved){ ... }

 

   // 손가락 하나는 가만히 있고 다른 하나는 움직일 때

   if(Input.GetTouch(0).phase == TouchPhase.Stationary && Input.GetTouch(1).phase == TouchPhase.Moved){ ... }

 

   // 손가락 한 개가 스크린을 움직일 때 속도

   if(Input.GetTouch(0).phase == TouchPhase.Moved){

      float speedX = Input.GetTouch(0).deltaPosition.x / Input.GetTouch(0).deltaTime;   // 횡방향 속도

      float speedY = Input.GetTouch(0).deltaPosition.y / Input.GetTouch(0).deltaTime;   // 종방향 속도

   }

 

   // 스크린 찍은 위치에서 Raycast 할 때

   if(Input.GetTouch(0).phase == TouchPhase.Began){

      Ray ray = Camera.main.ScreenPointToRay(Input.GetTouch(0).position);

      RaycastHit hit;

      if(Physics.Raycast(ray, out hit, 10.0f)){

         Instantiate(something, hit.point, Quaternion.identity);

      }

   }

 

이외에도 여러가지 응용방법이 있으니...즐기세요~

 

이런거 짜기 귀찮다...아니 생각하기도 귀찮다 할때는 Asset Store에서 Touch 관련 툴이 멋진게 많으니 구매해서 사용하세요~

아, TouchScript는 공짜랍니다.

 

맨위로

http://blog.daum.net/zevie/21

신고하기