[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:00.18,0:00:02.81,Default,,0000,0000,0000,,이 단원에서는 몇 가지\N표준 핀치 줌 스타일의 Dialogue: 0,0:00:02.81,0:00:04.81,Default,,0000,0000,0000,,터치 제어에 대해 자세히 Dialogue: 0,0:00:04.81,0:00:06.65,Default,,0000,0000,0000,,살펴보도록 하겠습니다. Dialogue: 0,0:00:07.06,0:00:10.16,Default,,0000,0000,0000,,카메라에 스크립트를 적용해서 Dialogue: 0,0:00:10.16,0:00:11.98,Default,,0000,0000,0000,,제어해 보겠습니다 Dialogue: 0,0:00:12.27,0:00:14.88,Default,,0000,0000,0000,,씬에서 주 카메라를 선택합니다 Dialogue: 0,0:00:15.52,0:00:17.96,Default,,0000,0000,0000,,그리고 [Add Component]\N- [New Script]를 클릭해 Dialogue: 0,0:00:17.96,0:00:22.26,Default,,0000,0000,0000,,C# 스크립트를 카메라에 추가합니다 Dialogue: 0,0:00:22.66,0:00:25.30,Default,,0000,0000,0000,,[PinchZoom] 스크립트를 불러올 것입니다 Dialogue: 0,0:00:25.68,0:00:29.10,Default,,0000,0000,0000,,스크립트를 불러오면\N[Create]와 [Add]를 클릭합니다 Dialogue: 0,0:00:29.72,0:00:31.87,Default,,0000,0000,0000,,이제 스크립트를 더블 클릭해 Dialogue: 0,0:00:31.87,0:00:33.87,Default,,0000,0000,0000,,열어서 편집할 수 있습니다 Dialogue: 0,0:00:34.65,0:00:36.36,Default,,0000,0000,0000,,클래스의 본문을 제거해 Dialogue: 0,0:00:36.36,0:00:38.36,Default,,0000,0000,0000,,깔끔하게 시작할 수 있도록 합니다 Dialogue: 0,0:00:39.02,0:00:42.32,Default,,0000,0000,0000,,핀치 줌의 원리는 다음과 같습니다 Dialogue: 0,0:00:42.62,0:00:44.31,Default,,0000,0000,0000,,우선 장치에 정확히 터치가 2개인지 Dialogue: 0,0:00:44.31,0:00:46.66,Default,,0000,0000,0000,,확인해야 합니다 Dialogue: 0,0:00:47.32,0:00:49.32,Default,,0000,0000,0000,,그리고 현재와 이전 프레임의 Dialogue: 0,0:00:49.32,0:00:51.32,Default,,0000,0000,0000,,터치간 거리를 Dialogue: 0,0:00:51.32,0:00:53.32,Default,,0000,0000,0000,,파악해야 합니다 Dialogue: 0,0:00:54.62,0:00:56.62,Default,,0000,0000,0000,,터치간 거리가 짧아졌다면 Dialogue: 0,0:00:56.62,0:00:59.06,Default,,0000,0000,0000,,두 터치가 서로 가깝게 이동한 것이므로 Dialogue: 0,0:00:59.06,0:01:01.77,Default,,0000,0000,0000,,줌아웃해야 합니다 Dialogue: 0,0:01:02.49,0:01:04.69,Default,,0000,0000,0000,,마찬가지로 터치간 거리가 길어졌다면 Dialogue: 0,0:01:04.69,0:01:07.78,Default,,0000,0000,0000,,줌인해야 합니다 Dialogue: 0,0:01:08.79,0:01:10.94,Default,,0000,0000,0000,,이 스크립트에서 맨 먼저 해야 할 작업은 Dialogue: 0,0:01:10.94,0:01:13.71,Default,,0000,0000,0000,,일반 float 변수 2개를 생성하는 것입니다 Dialogue: 0,0:01:14.21,0:01:15.100,Default,,0000,0000,0000,,이 변수들을 이용해 줌 속도를 Dialogue: 0,0:01:15.100,0:01:17.100,Default,,0000,0000,0000,,조절할 것입니다 Dialogue: 0,0:01:18.50,0:01:20.50,Default,,0000,0000,0000,,Perspective 및 Orthographic 카메라의 Dialogue: 0,0:01:20.50,0:01:23.53,Default,,0000,0000,0000,,속도를 따로 조절하려면 Dialogue: 0,0:01:23.53,0:01:25.53,Default,,0000,0000,0000,,변수가 2개 필요합니다 Dialogue: 0,0:01:26.60,0:01:28.41,Default,,0000,0000,0000,,이 변수들을 Dialogue: 0,0:01:28.41,0:01:30.25,Default,,0000,0000,0000,,[perspectiveZoomSpeed]와 Dialogue: 0,0:01:30.25,0:01:33.04,Default,,0000,0000,0000,,[orthoZoomSpeed]로 부르기로 합니다 Dialogue: 0,0:01:33.68,0:01:37.07,Default,,0000,0000,0000,,아울러 두 변수에 기본값을\N0.5로 부여합니다. Dialogue: 0,0:01:38.19,0:01:40.52,Default,,0000,0000,0000,,터치 입력이 업데이트 루프와 함께 Dialogue: 0,0:01:40.52,0:01:43.16,Default,,0000,0000,0000,,제때 감지되므로, 업데이트 함수에서 Dialogue: 0,0:01:43.16,0:01:45.87,Default,,0000,0000,0000,,터치 입력을 처리하는 것이 가장 좋습니다. Dialogue: 0,0:01:46.89,0:01:49.68,Default,,0000,0000,0000,,하지만 장치에 터치가 정확히 2개라면 Dialogue: 0,0:01:49.68,0:01:52.41,Default,,0000,0000,0000,,모든 것을 처리하려 할 것입니다 Dialogue: 0,0:01:52.86,0:01:56.100,Default,,0000,0000,0000,,[Input. touchCount] 속성을\N이용해 확인할 수 있습니다 Dialogue: 0,0:01:57.88,0:01:59.80,Default,,0000,0000,0000,,터치가 정확히 2개임을 확인했으므로 Dialogue: 0,0:01:59.80,0:02:02.71,Default,,0000,0000,0000,,이 터치들을 자체 터치 변수에 Dialogue: 0,0:02:02.71,0:02:04.95,Default,,0000,0000,0000,,저장할 수 있습니다 Dialogue: 0,0:02:04.95,0:02:07.36,Default,,0000,0000,0000,,이런 식으로 Input 클래스의 속성에 Dialogue: 0,0:02:07.36,0:02:09.36,Default,,0000,0000,0000,,계속 액세스할 필요가 없습니다 Dialogue: 0,0:02:10.30,0:02:13.43,Default,,0000,0000,0000,,Input 클래스의 [GetTouch] 함수를 이용해 Dialogue: 0,0:02:13.43,0:02:15.43,Default,,0000,0000,0000,,터치에 액세스합니다 Dialogue: 0,0:02:15.93,0:02:18.59,Default,,0000,0000,0000,,터치가 2개뿐이므로 Dialogue: 0,0:02:18.59,0:02:22.54,Default,,0000,0000,0000,,터치 어레이에서 지수 0과 1이 됩니다 Dialogue: 0,0:02:23.21,0:02:25.79,Default,,0000,0000,0000,,그러므로 0과 1을 [GetTouch] 함수로 Dialogue: 0,0:02:25.79,0:02:29.81,Default,,0000,0000,0000,,구문 분석해 이 터치들의\N복사본을 확보할 수 있습니다 Dialogue: 0,0:02:30.67,0:02:32.47,Default,,0000,0000,0000,,터치를 확보했으므로 Dialogue: 0,0:02:32.47,0:02:34.47,Default,,0000,0000,0000,,이전 프레임에서 터치의 위치를 Dialogue: 0,0:02:34.47,0:02:35.90,Default,,0000,0000,0000,,파악해야 합니다 Dialogue: 0,0:02:36.56,0:02:39.34,Default,,0000,0000,0000,,터치의 현재 위치를 확인해 델타 위치를 Dialogue: 0,0:02:39.34,0:02:41.34,Default,,0000,0000,0000,,빼면 됩니다 Dialogue: 0,0:02:43.13,0:02:45.13,Default,,0000,0000,0000,,각 프레임의 터치간 거리를 확인하고 Dialogue: 0,0:02:45.13,0:02:48.49,Default,,0000,0000,0000,,해당 정보를 이용해 줌인\N또는 줌아웃이 필요한지 Dialogue: 0,0:02:48.49,0:02:50.85,Default,,0000,0000,0000,,결정하려고 합니다 Dialogue: 0,0:02:51.52,0:02:54.72,Default,,0000,0000,0000,,각 프레임의 터치간 거리를 확인하려면 Dialogue: 0,0:02:54.72,0:02:56.64,Default,,0000,0000,0000,,하나의 터치 위치에서 Dialogue: 0,0:02:56.64,0:02:58.75,Default,,0000,0000,0000,,다른 하나의 터치 위치를 빼서\N둘 사이의 벡터를 구합니다. Dialogue: 0,0:02:59.62,0:03:03.30,Default,,0000,0000,0000,,그런 다음 그 벡터를 통해 크기를 확인합니다 Dialogue: 0,0:03:03.84,0:03:05.84,Default,,0000,0000,0000,,벡터 공제값을 괄호에 넣고 Dialogue: 0,0:03:05.84,0:03:08.61,Default,,0000,0000,0000,,[. operator]를 사용해 특정 단계에서 Dialogue: 0,0:03:08.61,0:03:10.38,Default,,0000,0000,0000,,이 작업을 수행할 수 있습니다 Dialogue: 0,0:03:11.18,0:03:12.84,Default,,0000,0000,0000,,델타라는 용어를 사용하는 것은 Dialogue: 0,0:03:12.84,0:03:16.62,Default,,0000,0000,0000,,델타가 두 데이터간 변화를\N의미하기 때문입니다 Dialogue: 0,0:03:17.83,0:03:19.73,Default,,0000,0000,0000,,각 프레임의 터치간 거리를 계산했으므로 Dialogue: 0,0:03:19.73,0:03:21.73,Default,,0000,0000,0000,,이제 그 거리 차이를 Dialogue: 0,0:03:21.73,0:03:25.06,Default,,0000,0000,0000,,확인할 수 있습니다 Dialogue: 0,0:03:25.65,0:03:29.38,Default,,0000,0000,0000,,이번에는 빼기 순서가 중요합니다 Dialogue: 0,0:03:29.38,0:03:31.38,Default,,0000,0000,0000,,이전 프레임의 거리에서 현재 프레임의 Dialogue: 0,0:03:31.38,0:03:34.83,Default,,0000,0000,0000,,터치간 거리를 빼겠습니다 Dialogue: 0,0:03:35.46,0:03:37.72,Default,,0000,0000,0000,,현재 프레임의 거리가 Dialogue: 0,0:03:37.72,0:03:40.06,Default,,0000,0000,0000,,이전 프레임의 거리보다 크다면 Dialogue: 0,0:03:40.06,0:03:42.06,Default,,0000,0000,0000,,그 값은 - 가 됩니다 Dialogue: 0,0:03:42.52,0:03:45.63,Default,,0000,0000,0000,,이것은 손가락을 벌린 상태라는 의미입니다 Dialogue: 0,0:03:45.63,0:03:47.63,Default,,0000,0000,0000,,손가락을 벌리면 Dialogue: 0,0:03:47.63,0:03:49.63,Default,,0000,0000,0000,,카메라의 시야가 좁아지고 Dialogue: 0,0:03:49.63,0:03:51.19,Default,,0000,0000,0000,,직교 크기가 작아지면서 Dialogue: 0,0:03:51.19,0:03:53.69,Default,,0000,0000,0000,,줌인됩니다 Dialogue: 0,0:03:55.08,0:03:57.75,Default,,0000,0000,0000,,이 조건에서 시야나 직교 크기를 Dialogue: 0,0:03:57.75,0:04:00.68,Default,,0000,0000,0000,,줄이려고 하므로 Dialogue: 0,0:04:00.68,0:04:04.14,Default,,0000,0000,0000,,이것은 두 값을 빼는 정확한 방법입니다 Dialogue: 0,0:04:05.20,0:04:06.79,Default,,0000,0000,0000,,하지만 카메라 속성을 Dialogue: 0,0:04:06.79,0:04:08.62,Default,,0000,0000,0000,,변경하기 전에 Dialogue: 0,0:04:08.62,0:04:11.63,Default,,0000,0000,0000,,카메라가 [직교 모드] 또는 [원근 모드]인지 Dialogue: 0,0:04:11.63,0:04:13.63,Default,,0000,0000,0000,,확인해야 합니다 Dialogue: 0,0:04:13.63,0:04:16.45,Default,,0000,0000,0000,,[직교 모드]라면 직교 줌 속도를 곱한 Dialogue: 0,0:04:16.45,0:04:19.84,Default,,0000,0000,0000,,거리 변화로 카메라의 직교 크기를 Dialogue: 0,0:04:19.84,0:04:23.29,Default,,0000,0000,0000,,조정할 수 있습니다 Dialogue: 0,0:04:24.54,0:04:27.82,Default,,0000,0000,0000,,또한 카메라의 직교\N크기가 0 미만이 되지 않게 Dialogue: 0,0:04:27.82,0:04:29.64,Default,,0000,0000,0000,,할 것입니다 Dialogue: 0,0:04:30.06,0:04:32.70,Default,,0000,0000,0000,,0 미만이면 이미지가 반전됩니다 Dialogue: 0,0:04:33.20,0:04:35.34,Default,,0000,0000,0000,,이를 막기 위해 [Mathf] 클래스의 Dialogue: 0,0:04:35.34,0:04:38.71,Default,,0000,0000,0000,,[Max] 함수를 이용할 것입니다 Dialogue: 0,0:04:39.21,0:04:41.21,Default,,0000,0000,0000,,그러면 주어진 매개변수 중 Dialogue: 0,0:04:41.21,0:04:43.21,Default,,0000,0000,0000,,가장 큰 값을 가져옵니다 Dialogue: 0,0:04:43.71,0:04:46.34,Default,,0000,0000,0000,,카메라의 직교 크기에 이 함수를 부여하고 Dialogue: 0,0:04:46.34,0:04:48.34,Default,,0000,0000,0000,,그 값을 [0.1]로 설정합니다 Dialogue: 0,0:04:49.04,0:04:52.54,Default,,0000,0000,0000,,이런 식으로 크기가 0.1 미만이면 Dialogue: 0,0:04:52.54,0:04:55.02,Default,,0000,0000,0000,,0.1로 설정할 수 있습니다 Dialogue: 0,0:04:56.38,0:04:59.97,Default,,0000,0000,0000,,이제 카메라가 [직교 모드]가 아니라 Dialogue: 0,0:04:59.97,0:05:01.97,Default,,0000,0000,0000,,[원근 모드]임을 확인하고 Dialogue: 0,0:05:01.97,0:05:04.58,Default,,0000,0000,0000,,시야를 변경합니다 Dialogue: 0,0:05:05.19,0:05:08.46,Default,,0000,0000,0000,,같은 양으로 시야를 조절할 수 있지만 Dialogue: 0,0:05:08.46,0:05:11.29,Default,,0000,0000,0000,,원근 줌 속도를 이용합니다 Dialogue: 0,0:05:13.03,0:05:15.63,Default,,0000,0000,0000,,다시 시야를 제한하려고 합니다 Dialogue: 0,0:05:15.63,0:05:19.19,Default,,0000,0000,0000,,하지만 시야는 각도를 의미하므로 Dialogue: 0,0:05:19.19,0:05:22.69,Default,,0000,0000,0000,,0과 180 사이에 고정해야 합니다 Dialogue: 0,0:05:23.33,0:05:27.66,Default,,0000,0000,0000,,이를 위해 [Mathf] 클래스의\N[Clamp] 함수를 이용합니다 Dialogue: 0,0:05:28.16,0:05:30.16,Default,,0000,0000,0000,,값은 3개가 필요합니다 Dialogue: 0,0:05:30.16,0:05:32.85,Default,,0000,0000,0000,,우선 원하는 고정값이 있어야 하고, Dialogue: 0,0:05:32.85,0:05:35.20,Default,,0000,0000,0000,,그 다음에는 최소 허용값과 Dialogue: 0,0:05:35.20,0:05:37.78,Default,,0000,0000,0000,,최대 허용값이 필요합니다 Dialogue: 0,0:05:38.83,0:05:41.58,Default,,0000,0000,0000,,설정값은 카메라의 시야이며 Dialogue: 0,0:05:41.58,0:05:44.29,Default,,0000,0000,0000,,그 값을 0.1과 179.9 사이에 Dialogue: 0,0:05:44.29,0:05:46.77,Default,,0000,0000,0000,,두려고 합니다 Dialogue: 0,0:05:48.26,0:05:50.67,Default,,0000,0000,0000,,자체 핀치 줌 시스템을 구성할 때 Dialogue: 0,0:05:50.67,0:05:53.15,Default,,0000,0000,0000,,여러분은 보다 적합한 시야와 직교 크기 Dialogue: 0,0:05:53.15,0:05:55.99,Default,,0000,0000,0000,,제한을 선택하려고 할 것입니다 Dialogue: 0,0:05:56.65,0:05:59.24,Default,,0000,0000,0000,,여기에서는 스크립트에 표시된\N제한값을 이용하고 있습니다 Dialogue: 0,0:05:59.24,0:06:01.24,Default,,0000,0000,0000,,이 값들이 합당한 결과물을 만들 수 있는 Dialogue: 0,0:06:01.24,0:06:03.09,Default,,0000,0000,0000,,한계값이기 때문이죠 Dialogue: 0,0:06:03.61,0:06:07.16,Default,,0000,0000,0000,,스크립트를 모두 살펴보았으므로\N이제 테스트를 해보겠습니다 Dialogue: 0,0:06:07.98,0:06:10.63,Default,,0000,0000,0000,,장치가 준비되었고 테스트 설정이\N완료된 상태라고 Dialogue: 0,0:06:10.63,0:06:12.47,Default,,0000,0000,0000,,가정합니다 Dialogue: 0,0:06:12.47,0:06:14.47,Default,,0000,0000,0000,,방법은 해당 장치의 설명서를 Dialogue: 0,0:06:14.47,0:06:16.47,Default,,0000,0000,0000,,참조하십시오 Dialogue: 0,0:06:17.70,0:06:19.70,Default,,0000,0000,0000,,이제 [File] - [Build Settings]로 가서 Dialogue: 0,0:06:19.70,0:06:21.92,Default,,0000,0000,0000,,이 프로젝트를 빌드할 것입니다 Dialogue: 0,0:06:22.47,0:06:25.04,Default,,0000,0000,0000,,현재의 씬을 빌드에 추가해야 합니다 Dialogue: 0,0:06:25.54,0:06:27.31,Default,,0000,0000,0000,,아직 씬을 저장하지 않았다면 Dialogue: 0,0:06:27.31,0:06:28.94,Default,,0000,0000,0000,,저장하라는 프롬프트가 표시될 것입니다 Dialogue: 0,0:06:29.68,0:06:31.88,Default,,0000,0000,0000,,그런 다음 [Build And Run]을 클릭합니다 Dialogue: 0,0:06:32.72,0:06:35.55,Default,,0000,0000,0000,,보시다시피 손가락을 모으면 Dialogue: 0,0:06:35.55,0:06:37.34,Default,,0000,0000,0000,,카메라가 줌아웃되고 Dialogue: 0,0:06:37.34,0:06:40.14,Default,,0000,0000,0000,,벌리면 줌인됩니다.