일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Unity
- nodejs
- 데브런 #노코드게임제작 #데브런와디즈 #AI게임제작
- 모듈
- 오프라인 환경
- 스팀 도전과제 Reset
- header
- sqlite3
- 파이썬 웹 개발
- #데브런 #노코드 #노코드게임제작 #데브런와디즈 #ai게임제작
- 튜플 단일 요소
- 도과 테스트
- 파이썬
- JavaScript
- Python
- 장고
- 연산자
- 테이블 생성
- 인덱싱
- 슬라이싱
- error
- 상속
- 회원가입
- Achievement unity
- 스팀 도과 Reset
- 도전과제 unity
- django
- 파이썬 패키지 설치
- Steam Achievement Reset
- HTML
- Today
- Total
개발성문
Unity 터치 포인트 좌표에 바운스 볼 생성 (2) - Touch 본문
이전 포스팅에서 대충 내용에 대한 언급이 있었기에 마로 소스를 확인해 보겠습니다.
for(int i = 0; i < Input.touchCount; i++) { touch = Input.GetTouch(i); if (touch.phase == TouchPhase.Began) { // 1. Vector3 pos = Camera.main.ScreenToWorldPoint(touch.position); Debug.Log(pos); // 2. //Instantiate(sphere, pos, Quaternion.identity); // 3. Instantiate(sphere, new Vector3(pos.x, (pos.y - 3), 0), Quaternion.identity); } }
Unity 에서 터치 입력을 받기 위해서는 GetTouch()를 사용합니다. 매개 변수로는 int 형의 값을 사용합니다.
Input.GetTouch() 는 특정 터치의 상태를 나타내는 오브젝트를 반환합니다.
반환된 오브젝트에서 Touch의 Phase, 터치의 단계( touch.phase )를 확인 할 수 있습니다.
터치에 대한 가장 최근에 취한 동작을 나타내며, 시작과 끝, 터치 중에 대한 정보를 알 수 있습니다.
TouchPhase 는 손가락의 입력 단계를 나타냅니다.
5개의 단계로 나누어져 있습니다.
- Began : 화면에 터치를 시작했을 때, 처음 화면에 터치 했을때의 상태입니다.
- Moved : 화면에 터치 한 상태에서 움직이는 경우를 나타냅니다.
- Stationary : 화면에 터치는 했지만 움직이지 않을 때의 상태입니다.
- Ended : 화면에서 손을 떼었을때의 상태입니다.
- Canceled : 화면에 얼굴을 가져다 데거나, 5개의 터치가 동시에 이루어진 경우에 시스템 적으로 터치의 추적을 취소합니다.
위 내용은 Unity의 Documentation에서 가져왔습니다.(https://docs.unity3d.com/kr/530/ScriptReference/TouchPhase.html)
동영상에서 보았을 때, 필요한 것은 터치한곳의 좌표를 가져와서 그 위치에 새로운 오브젝트를 만들어주는 것이기 때문에
Began 만 있으면 됩니다.
현제 나의 터치 상태가 TouchPhase의 Began 상태인지 확인하여 실행하도록 합니다.
혹시 처음 터치시에 오브젝트를 생성하고 그 오브젝트를 움직이고 싶다면, Moved 상태인지 체크해서
사용하면 되겠습니다.
Unity 에서 Topuch 를 사용하는데 있어서 중요한 것이 있는데 좌표입니다.
핸드폰에서 터치하는 좌표와 Unity 의 게임세상이 있는 좌표가 달라서 처음 작업을 해보면,
터치한 위치에서 생성되지 않습니다.
위의 소스는 억지로 맞춘것이고, 이어지는 다음 포스팅에서 그 문제에 대해 다뤄보겠습니다.
'공부 좀 하자 > Unity' 카테고리의 다른 글
Camera.main.ScreenPointToRay() 사용시 에러 (1) | 2018.12.18 |
---|---|
Unity 터치 포인트 좌표에 바운스 볼 생성 (3) - Camera.ScreenPointToRay, Screen, Viewport, World (0) | 2018.04.05 |
탱크(Tank)로 실험한 회전, euler, Mathf.Clamp (0) | 2018.04.03 |
Unity 또 하나의 충돌체크 Debug.DrawRay, Physics.Raycast 에 대해 (0) | 2018.04.02 |
Unity 스카이 박스(Sky Box) 에 대하여 (0) | 2018.03.30 |