[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:00.00,0:00:02.10,Default,,0000,0000,0000,,Raycast는 광선 경로에 Dialogue: 0,0:00:02.10,0:00:04.28,Default,,0000,0000,0000,,충돌체가 있는지 감지하기 위해 Dialogue: 0,0:00:04.28,0:00:06.77,Default,,0000,0000,0000,,특정 방향의 점에서 보이지 않는 Dialogue: 0,0:00:06.77,0:00:08.77,Default,,0000,0000,0000,,광선을 발사하는 과정입니다 Dialogue: 0,0:00:08.77,0:00:10.77,Default,,0000,0000,0000,,총을 쏘는 것이 한 예입니다 Dialogue: 0,0:00:10.77,0:00:12.87,Default,,0000,0000,0000,,이 인스턴스에서는 Dialogue: 0,0:00:12.87,0:00:14.87,Default,,0000,0000,0000,,캐릭터는 자신을 배신하고 아버지를 죽인 Dialogue: 0,0:00:14.87,0:00:16.87,Default,,0000,0000,0000,,악마의 상자를 쏴버리고 싶어 합니다 Dialogue: 0,0:00:17.37,0:00:20.10,Default,,0000,0000,0000,,raycast 함수 문법은 이렇습니다 Dialogue: 0,0:00:20.10,0:00:22.10,Default,,0000,0000,0000,,처음에는 혼동될 수 있지만 Dialogue: 0,0:00:22.10,0:00:24.53,Default,,0000,0000,0000,,각 부분을 이해하면 Dialogue: 0,0:00:24.53,0:00:26.20,Default,,0000,0000,0000,,구성에 수긍하실 겁니다 Dialogue: 0,0:00:26.20,0:00:28.20,Default,,0000,0000,0000,,처음으로 광선의 시작은 Dialogue: 0,0:00:28.20,0:00:30.20,Default,,0000,0000,0000,,세계 공간의 점입니다 Dialogue: 0,0:00:30.20,0:00:32.20,Default,,0000,0000,0000,,그러므로 이 인스턴스에서 Dialogue: 0,0:00:32.20,0:00:34.20,Default,,0000,0000,0000,,Vector3, X, Y 및 Z축 위치에 저장된 Dialogue: 0,0:00:34.20,0:00:37.58,Default,,0000,0000,0000,,총신 앞의 점을 선택했습니다 Dialogue: 0,0:00:37.92,0:00:39.92,Default,,0000,0000,0000,,그러나 세계 좌표 방향이 발사하려는 Dialogue: 0,0:00:39.92,0:00:41.93,Default,,0000,0000,0000,,방향을 향하고 있지 않아 Dialogue: 0,0:00:41.93,0:00:44.42,Default,,0000,0000,0000,,방향이 저장되어 있는 두 번째 Vector3가 Dialogue: 0,0:00:44.42,0:00:46.21,Default,,0000,0000,0000,,필요합니다 Dialogue: 0,0:00:46.21,0:00:48.21,Default,,0000,0000,0000,,이 두 Vector3 변수는 광선을 구성합니다 Dialogue: 0,0:00:48.21,0:00:51.16,Default,,0000,0000,0000,,하지만 Ray 변수로 대체할 수도 있으며 Dialogue: 0,0:00:51.16,0:00:53.69,Default,,0000,0000,0000,,해당 변수의 데이터 유형은 Dialogue: 0,0:00:53.69,0:00:55.69,Default,,0000,0000,0000,,두 Vector3에 저장할 수 있습니다 Dialogue: 0,0:00:55.69,0:00:57.69,Default,,0000,0000,0000,,코드는 이런 모양이 될 것입니다 Dialogue: 0,0:01:02.38,0:01:04.20,Default,,0000,0000,0000,,함수의 다음 인수는 Dialogue: 0,0:01:04.20,0:01:06.20,Default,,0000,0000,0000,,충돌체 충돌의 정보를 저장하는 Dialogue: 0,0:01:06.20,0:01:08.14,Default,,0000,0000,0000,,RaycastHit 변수입니다 Dialogue: 0,0:01:08.45,0:01:10.45,Default,,0000,0000,0000,,어떤 오브젝트가 광선을 교차하는지 Dialogue: 0,0:01:10.45,0:01:12.85,Default,,0000,0000,0000,,코드에서 쿼리할 수 있습니다 Dialogue: 0,0:01:13.15,0:01:15.61,Default,,0000,0000,0000,,마지막으로 선택적 인수 두 개입니다 Dialogue: 0,0:01:15.61,0:01:17.61,Default,,0000,0000,0000,,거리는 광선 길이를 Dialogue: 0,0:01:17.61,0:01:19.61,Default,,0000,0000,0000,,정의하며 생략하면 기본값인 Dialogue: 0,0:01:19.61,0:01:21.61,Default,,0000,0000,0000,,무한 길이가 됩니다 Dialogue: 0,0:01:21.61,0:01:23.61,Default,,0000,0000,0000,,다음은 레이어 마스크이며 Dialogue: 0,0:01:23.61,0:01:26.55,Default,,0000,0000,0000,,Unity의 레이어 시스템에 있는\N특정 레이어 수이며 Dialogue: 0,0:01:26.55,0:01:28.55,Default,,0000,0000,0000,,광선이 무시하는 오브젝트를 Dialogue: 0,0:01:28.55,0:01:30.22,Default,,0000,0000,0000,,배치할 수 있습니다 Dialogue: 0,0:01:30.22,0:01:32.22,Default,,0000,0000,0000,,Raycast를 사용한 다른 예를 Dialogue: 0,0:01:32.22,0:01:33.51,Default,,0000,0000,0000,,살펴봅시다 Dialogue: 0,0:01:33.51,0:01:35.89,Default,,0000,0000,0000,,이 예제는 바닥에 가까이 갈 때 Dialogue: 0,0:01:35.89,0:01:37.36,Default,,0000,0000,0000,,낙하산이 펴지는 낙하산 상자가 Dialogue: 0,0:01:37.36,0:01:39.20,Default,,0000,0000,0000,,나옵니다 Dialogue: 0,0:01:40.46,0:01:42.26,Default,,0000,0000,0000,,상자에는 부품이 2개 있습니다 Dialogue: 0,0:01:42.26,0:01:44.03,Default,,0000,0000,0000,,슈트와 상자 자체가 그것입니다 Dialogue: 0,0:01:44.03,0:01:46.03,Default,,0000,0000,0000,,슈트에는 슈트를 여는 것과 Dialogue: 0,0:01:46.53,0:01:48.04,Default,,0000,0000,0000,,닫는 것, 이렇게 두 개의 Dialogue: 0,0:01:48.60,0:01:50.03,Default,,0000,0000,0000,,애니메이션이 있습니다 Dialogue: 0,0:01:50.92,0:01:52.92,Default,,0000,0000,0000,,이 예제에서는 상자가 바닥에 얼마나 Dialogue: 0,0:01:52.92,0:01:55.33,Default,,0000,0000,0000,,떨어져 있는지 확인하기 위해 광선을 Dialogue: 0,0:01:55.33,0:01:57.33,Default,,0000,0000,0000,,아래쪽으로 쏠 것이며 Dialogue: 0,0:01:57.33,0:02:00.12,Default,,0000,0000,0000,,환경에 적용된 충돌체를 찾아\N바닥을 확인할 것입니다 Dialogue: 0,0:02:00.62,0:02:03.15,Default,,0000,0000,0000,,환경용 충돌체는 environment라는 단어로 Dialogue: 0,0:02:03.15,0:02:04.69,Default,,0000,0000,0000,,태깅되어 있습니다 Dialogue: 0,0:02:05.40,0:02:09.20,Default,,0000,0000,0000,,스크립트에서 해당 태그를 찾아보겠습니다 Dialogue: 0,0:02:10.88,0:02:12.48,Default,,0000,0000,0000,,RayCast 함수가 IF문 안에 있어 Dialogue: 0,0:02:12.48,0:02:15.66,Default,,0000,0000,0000,,아무 것이나 교차했다는 뜻인 Dialogue: 0,0:02:15.66,0:02:17.66,Default,,0000,0000,0000,,true를 반환하면 Dialogue: 0,0:02:17.66,0:02:19.66,Default,,0000,0000,0000,,IF문의 주석이 실행되고 Dialogue: 0,0:02:19.66,0:02:21.66,Default,,0000,0000,0000,,RayCastHit 변수가 충돌한 Dialogue: 0,0:02:21.66,0:02:25.24,Default,,0000,0000,0000,,것을 쿼리합니다 Dialogue: 0,0:02:26.24,0:02:29.18,Default,,0000,0000,0000,,Physics.Raycast를 작성한 Dialogue: 0,0:02:29.18,0:02:32.86,Default,,0000,0000,0000,,IF문에 상자 위치와 아래쪽 방향을 저장하는 Dialogue: 0,0:02:32.86,0:02:35.71,Default,,0000,0000,0000,,landingRay 변수가 있습니다 Dialogue: 0,0:02:35.71,0:02:37.71,Default,,0000,0000,0000,,Vector3.down 바로 가기를 Dialogue: 0,0:02:37.71,0:02:39.71,Default,,0000,0000,0000,,광선을 쏘는 데 Dialogue: 0,0:02:39.71,0:02:41.96,Default,,0000,0000,0000,,사용할 것입니다 Dialogue: 0,0:02:41.96,0:02:44.37,Default,,0000,0000,0000,,RaycastHit 변수 'hit'는 Dialogue: 0,0:02:44.37,0:02:46.37,Default,,0000,0000,0000,,아래쪽으로 쏠 때 광선과 충돌하는 Dialogue: 0,0:02:46.37,0:02:48.37,Default,,0000,0000,0000,,모든 것을 저장하고 거리, Dialogue: 0,0:02:48.37,0:02:50.37,Default,,0000,0000,0000,,'length' 또는 광선은 Dialogue: 0,0:02:50.37,0:02:53.41,Default,,0000,0000,0000,,'deployment height' 변수로 정의합니다 Dialogue: 0,0:02:53.41,0:02:55.86,Default,,0000,0000,0000,,광선이 충돌체와 교차하면 Dialogue: 0,0:02:58.86,0:03:01.80,Default,,0000,0000,0000,,deploy parachute 함수를 호출합니다 Dialogue: 0,0:03:02.30,0:03:04.76,Default,,0000,0000,0000,,이 함수는 Boolean 'deployed' 플래그를 Dialogue: 0,0:03:04.76,0:03:08.19,Default,,0000,0000,0000,,true로 설정해 반복할 수 없게 합니다 Dialogue: 0,0:03:08.69,0:03:11.02,Default,,0000,0000,0000,,그리고 rigidbody의 Drag를 Dialogue: 0,0:03:11.02,0:03:13.90,Default,,0000,0000,0000,,'parachuteEffectiveness' 변수로 설정합니다 Dialogue: 0,0:03:13.90,0:03:15.90,Default,,0000,0000,0000,,이렇게 해서 낙하산이 펴지면 Dialogue: 0,0:03:15.90,0:03:17.58,Default,,0000,0000,0000,,상자가 느리게 내려갑니다 Dialogue: 0,0:03:17.58,0:03:19.58,Default,,0000,0000,0000,,또한 공용 변수에 할당하는 Dialogue: 0,0:03:19.58,0:03:21.58,Default,,0000,0000,0000,,게임 오브젝트인 낙하산 Dialogue: 0,0:03:21.58,0:03:23.58,Default,,0000,0000,0000,,오브젝트에서 애니메이션을 Dialogue: 0,0:03:23.58,0:03:25.16,Default,,0000,0000,0000,,재생합니다 Dialogue: 0,0:03:25.36,0:03:27.94,Default,,0000,0000,0000,,separate OnCollisionEnter 함수는 Dialogue: 0,0:03:27.94,0:03:29.94,Default,,0000,0000,0000,,접는 애니메이션을 재생합니다 Dialogue: 0,0:03:29.94,0:03:31.94,Default,,0000,0000,0000,,상자가 땅에 내려오거나 다른 오브젝트와 Dialogue: 0,0:03:31.94,0:03:34.72,Default,,0000,0000,0000,,충돌하면 낙하산이 접힙니다 Dialogue: 0,0:03:36.44,0:03:39.57,Default,,0000,0000,0000,,deployment height를 4로 설정해 Dialogue: 0,0:03:39.57,0:03:41.81,Default,,0000,0000,0000,,광선 길이를 4로 정합니다 Dialogue: 0,0:03:42.03,0:03:45.42,Default,,0000,0000,0000,,그리고 parachute effectiveness를 8로 설정해 Dialogue: 0,0:03:45.67,0:03:48.62,Default,,0000,0000,0000,,rigidbody 끌기를 8로 정합니다 Dialogue: 0,0:03:48.62,0:03:50.62,Default,,0000,0000,0000,,이제 낙하산 슈트 오브젝트를 Dialogue: 0,0:03:50.62,0:03:54.27,Default,,0000,0000,0000,,parachute 변수로 끕니다 Dialogue: 0,0:03:54.27,0:03:57.12,Default,,0000,0000,0000,,오브젝트에는 재생할 애니메이션 컴포넌트가 Dialogue: 0,0:03:57.12,0:03:59.12,Default,,0000,0000,0000,,있어 펴는 것과 접는 Dialogue: 0,0:03:59.12,0:04:01.12,Default,,0000,0000,0000,,애니메이션이 됩니다 Dialogue: 0,0:04:01.12,0:04:03.12,Default,,0000,0000,0000,,이제 한 번 더 재생해 봅시다 Dialogue: 0,0:04:06.68,0:04:08.68,Default,,0000,0000,0000,,씬 뷰나 게임에서는 Dialogue: 0,0:04:08.68,0:04:10.68,Default,,0000,0000,0000,,광선 투시를 볼 수 있는 Dialogue: 0,0:04:10.68,0:04:13.09,Default,,0000,0000,0000,,것에 주의하십시오 Dialogue: 0,0:04:13.09,0:04:15.49,Default,,0000,0000,0000,,또한 Debug.DrawRay 함수를 Dialogue: 0,0:04:15.49,0:04:18.01,Default,,0000,0000,0000,,사용하여 광선이 Dialogue: 0,0:04:18.01,0:04:21.05,Default,,0000,0000,0000,,비춰지는 부분을 미리 볼 수 있습니다 Dialogue: 0,0:04:21.05,0:04:23.50,Default,,0000,0000,0000,,Debug.DrawRay를 Dialogue: 0,0:04:23.50,0:04:25.50,Default,,0000,0000,0000,,추가하여 Vector3.down 방향에서 Dialogue: 0,0:04:25.50,0:04:27.50,Default,,0000,0000,0000,,상자 위치에 대한 광선을 Dialogue: 0,0:04:27.50,0:04:30.08,Default,,0000,0000,0000,,시각적으로 그리고 Dialogue: 0,0:04:30.08,0:04:33.73,Default,,0000,0000,0000,,기존 광선 길이인\Ndeployment height를 곱합니다 Dialogue: 0,0:04:33.73,0:04:35.73,Default,,0000,0000,0000,,이렇게 하여 아래 IF문에서 쏘는 Dialogue: 0,0:04:35.73,0:04:38.24,Default,,0000,0000,0000,,실제 광선을 일치시킵니다 Dialogue: 0,0:04:38.55,0:04:40.55,Default,,0000,0000,0000,,다시 재생하면 Unity는 씬 뷰에서 Dialogue: 0,0:04:40.55,0:04:42.55,Default,,0000,0000,0000,,그려진 광선을 Dialogue: 0,0:04:42.55,0:04:45.89,Default,,0000,0000,0000,,표시하여 광선을 보여줍니다