< Return to Video

Mobile Pinch to Zoom Assignment - Unity Official Tutorials

  • 0:00 - 0:03
    이 단원에서는 몇 가지
    표준 핀치 줌 스타일의
  • 0:03 - 0:05
    터치 제어에 대해 자세히
  • 0:05 - 0:07
    살펴보도록 하겠습니다.
  • 0:07 - 0:10
    카메라에 스크립트를 적용해서
  • 0:10 - 0:12
    제어해 보겠습니다
  • 0:12 - 0:15
    씬에서 주 카메라를 선택합니다
  • 0:16 - 0:18
    그리고 [Add Component]
    - [New Script]를 클릭해
  • 0:18 - 0:22
    C# 스크립트를 카메라에 추가합니다
  • 0:23 - 0:25
    [PinchZoom] 스크립트를 불러올 것입니다
  • 0:26 - 0:29
    스크립트를 불러오면
    [Create]와 [Add]를 클릭합니다
  • 0:30 - 0:32
    이제 스크립트를 더블 클릭해
  • 0:32 - 0:34
    열어서 편집할 수 있습니다
  • 0:35 - 0:36
    클래스의 본문을 제거해
  • 0:36 - 0:38
    깔끔하게 시작할 수 있도록 합니다
  • 0:39 - 0:42
    핀치 줌의 원리는 다음과 같습니다
  • 0:43 - 0:44
    우선 장치에 정확히 터치가 2개인지
  • 0:44 - 0:47
    확인해야 합니다
  • 0:47 - 0:49
    그리고 현재와 이전 프레임의
  • 0:49 - 0:51
    터치간 거리를
  • 0:51 - 0:53
    파악해야 합니다
  • 0:55 - 0:57
    터치간 거리가 짧아졌다면
  • 0:57 - 0:59
    두 터치가 서로 가깝게 이동한 것이므로
  • 0:59 - 1:02
    줌아웃해야 합니다
  • 1:02 - 1:05
    마찬가지로 터치간 거리가 길어졌다면
  • 1:05 - 1:08
    줌인해야 합니다
  • 1:09 - 1:11
    이 스크립트에서 맨 먼저 해야 할 작업은
  • 1:11 - 1:14
    일반 float 변수 2개를 생성하는 것입니다
  • 1:14 - 1:16
    이 변수들을 이용해 줌 속도를
  • 1:16 - 1:18
    조절할 것입니다
  • 1:18 - 1:20
    Perspective 및 Orthographic 카메라의
  • 1:20 - 1:24
    속도를 따로 조절하려면
  • 1:24 - 1:26
    변수가 2개 필요합니다
  • 1:27 - 1:28
    이 변수들을
  • 1:28 - 1:30
    [perspectiveZoomSpeed]와
  • 1:30 - 1:33
    [orthoZoomSpeed]로 부르기로 합니다
  • 1:34 - 1:37
    아울러 두 변수에 기본값을
    0.5로 부여합니다.
  • 1:38 - 1:41
    터치 입력이 업데이트 루프와 함께
  • 1:41 - 1:43
    제때 감지되므로, 업데이트 함수에서
  • 1:43 - 1:46
    터치 입력을 처리하는 것이 가장 좋습니다.
  • 1:47 - 1:50
    하지만 장치에 터치가 정확히 2개라면
  • 1:50 - 1:52
    모든 것을 처리하려 할 것입니다
  • 1:53 - 1:57
    [Input. touchCount] 속성을
    이용해 확인할 수 있습니다
  • 1:58 - 2:00
    터치가 정확히 2개임을 확인했으므로
  • 2:00 - 2:03
    이 터치들을 자체 터치 변수에
  • 2:03 - 2:05
    저장할 수 있습니다
  • 2:05 - 2:07
    이런 식으로 Input 클래스의 속성에
  • 2:07 - 2:09
    계속 액세스할 필요가 없습니다
  • 2:10 - 2:13
    Input 클래스의 [GetTouch] 함수를 이용해
  • 2:13 - 2:15
    터치에 액세스합니다
  • 2:16 - 2:19
    터치가 2개뿐이므로
  • 2:19 - 2:23
    터치 어레이에서 지수 0과 1이 됩니다
  • 2:23 - 2:26
    그러므로 0과 1을 [GetTouch] 함수로
  • 2:26 - 2:30
    구문 분석해 이 터치들의
    복사본을 확보할 수 있습니다
  • 2:31 - 2:32
    터치를 확보했으므로
  • 2:32 - 2:34
    이전 프레임에서 터치의 위치를
  • 2:34 - 2:36
    파악해야 합니다
  • 2:37 - 2:39
    터치의 현재 위치를 확인해 델타 위치를
  • 2:39 - 2:41
    빼면 됩니다
  • 2:43 - 2:45
    각 프레임의 터치간 거리를 확인하고
  • 2:45 - 2:48
    해당 정보를 이용해 줌인
    또는 줌아웃이 필요한지
  • 2:48 - 2:51
    결정하려고 합니다
  • 2:52 - 2:55
    각 프레임의 터치간 거리를 확인하려면
  • 2:55 - 2:57
    하나의 터치 위치에서
  • 2:57 - 2:59
    다른 하나의 터치 위치를 빼서
    둘 사이의 벡터를 구합니다.
  • 3:00 - 3:03
    그런 다음 그 벡터를 통해 크기를 확인합니다
  • 3:04 - 3:06
    벡터 공제값을 괄호에 넣고
  • 3:06 - 3:09
    [. operator]를 사용해 특정 단계에서
  • 3:09 - 3:10
    이 작업을 수행할 수 있습니다
  • 3:11 - 3:13
    델타라는 용어를 사용하는 것은
  • 3:13 - 3:17
    델타가 두 데이터간 변화를
    의미하기 때문입니다
  • 3:18 - 3:20
    각 프레임의 터치간 거리를 계산했으므로
  • 3:20 - 3:22
    이제 그 거리 차이를
  • 3:22 - 3:25
    확인할 수 있습니다
  • 3:26 - 3:29
    이번에는 빼기 순서가 중요합니다
  • 3:29 - 3:31
    이전 프레임의 거리에서 현재 프레임의
  • 3:31 - 3:35
    터치간 거리를 빼겠습니다
  • 3:35 - 3:38
    현재 프레임의 거리가
  • 3:38 - 3:40
    이전 프레임의 거리보다 크다면
  • 3:40 - 3:42
    그 값은 - 가 됩니다
  • 3:43 - 3:46
    이것은 손가락을 벌린 상태라는 의미입니다
  • 3:46 - 3:48
    손가락을 벌리면
  • 3:48 - 3:50
    카메라의 시야가 좁아지고
  • 3:50 - 3:51
    직교 크기가 작아지면서
  • 3:51 - 3:54
    줌인됩니다
  • 3:55 - 3:58
    이 조건에서 시야나 직교 크기를
  • 3:58 - 4:01
    줄이려고 하므로
  • 4:01 - 4:04
    이것은 두 값을 빼는 정확한 방법입니다
  • 4:05 - 4:07
    하지만 카메라 속성을
  • 4:07 - 4:09
    변경하기 전에
  • 4:09 - 4:12
    카메라가 [직교 모드] 또는 [원근 모드]인지
  • 4:12 - 4:14
    확인해야 합니다
  • 4:14 - 4:16
    [직교 모드]라면 직교 줌 속도를 곱한
  • 4:16 - 4:20
    거리 변화로 카메라의 직교 크기를
  • 4:20 - 4:23
    조정할 수 있습니다
  • 4:25 - 4:28
    또한 카메라의 직교
    크기가 0 미만이 되지 않게
  • 4:28 - 4:30
    할 것입니다
  • 4:30 - 4:33
    0 미만이면 이미지가 반전됩니다
  • 4:33 - 4:35
    이를 막기 위해 [Mathf] 클래스의
  • 4:35 - 4:39
    [Max] 함수를 이용할 것입니다
  • 4:39 - 4:41
    그러면 주어진 매개변수 중
  • 4:41 - 4:43
    가장 큰 값을 가져옵니다
  • 4:44 - 4:46
    카메라의 직교 크기에 이 함수를 부여하고
  • 4:46 - 4:48
    그 값을 [0.1]로 설정합니다
  • 4:49 - 4:53
    이런 식으로 크기가 0.1 미만이면
  • 4:53 - 4:55
    0.1로 설정할 수 있습니다
  • 4:56 - 5:00
    이제 카메라가 [직교 모드]가 아니라
  • 5:00 - 5:02
    [원근 모드]임을 확인하고
  • 5:02 - 5:05
    시야를 변경합니다
  • 5:05 - 5:08
    같은 양으로 시야를 조절할 수 있지만
  • 5:08 - 5:11
    원근 줌 속도를 이용합니다
  • 5:13 - 5:16
    다시 시야를 제한하려고 합니다
  • 5:16 - 5:19
    하지만 시야는 각도를 의미하므로
  • 5:19 - 5:23
    0과 180 사이에 고정해야 합니다
  • 5:23 - 5:28
    이를 위해 [Mathf] 클래스의
    [Clamp] 함수를 이용합니다
  • 5:28 - 5:30
    값은 3개가 필요합니다
  • 5:30 - 5:33
    우선 원하는 고정값이 있어야 하고,
  • 5:33 - 5:35
    그 다음에는 최소 허용값과
  • 5:35 - 5:38
    최대 허용값이 필요합니다
  • 5:39 - 5:42
    설정값은 카메라의 시야이며
  • 5:42 - 5:44
    그 값을 0.1과 179.9 사이에
  • 5:44 - 5:47
    두려고 합니다
  • 5:48 - 5:51
    자체 핀치 줌 시스템을 구성할 때
  • 5:51 - 5:53
    여러분은 보다 적합한 시야와 직교 크기
  • 5:53 - 5:56
    제한을 선택하려고 할 것입니다
  • 5:57 - 5:59
    여기에서는 스크립트에 표시된
    제한값을 이용하고 있습니다
  • 5:59 - 6:01
    이 값들이 합당한 결과물을 만들 수 있는
  • 6:01 - 6:03
    한계값이기 때문이죠
  • 6:04 - 6:07
    스크립트를 모두 살펴보았으므로
    이제 테스트를 해보겠습니다
  • 6:08 - 6:11
    장치가 준비되었고 테스트 설정이
    완료된 상태라고
  • 6:11 - 6:12
    가정합니다
  • 6:12 - 6:14
    방법은 해당 장치의 설명서를
  • 6:14 - 6:16
    참조하십시오
  • 6:18 - 6:20
    이제 [File] - [Build Settings]로 가서
  • 6:20 - 6:22
    이 프로젝트를 빌드할 것입니다
  • 6:22 - 6:25
    현재의 씬을 빌드에 추가해야 합니다
  • 6:26 - 6:27
    아직 씬을 저장하지 않았다면
  • 6:27 - 6:29
    저장하라는 프롬프트가 표시될 것입니다
  • 6:30 - 6:32
    그런 다음 [Build And Run]을 클릭합니다
  • 6:33 - 6:36
    보시다시피 손가락을 모으면
  • 6:36 - 6:37
    카메라가 줌아웃되고
  • 6:37 - 6:40
    벌리면 줌인됩니다.
Title:
Mobile Pinch to Zoom Assignment - Unity Official Tutorials
Description:

more » « less
Video Language:
English
Duration:
06:41

Korean subtitles

Revisions