1 00:00:00,000 --> 00:00:01,931 일반적으로 게임에서 게임 오브젝트를 2 00:00:01,931 --> 00:00:03,931 움직이게 하려면 해당 오브젝트가 3 00:00:03,931 --> 00:00:05,058 rigidbody 오브젝트인지 4 00:00:05,058 --> 00:00:06,685 확인해야 합니다 5 00:00:07,185 --> 00:00:09,185 rigidbody는 게임 오브젝트가 물리력의 6 00:00:09,185 --> 00:00:11,365 영향을 받도록 하는 컴포넌트입니다 7 00:00:11,365 --> 00:00:13,365 오브젝트가 중력에 의해 아래로 떨어지고 8 00:00:13,365 --> 00:00:15,809 질량과 같은 물리적 속성을 가지며 9 00:00:15,809 --> 00:00:17,406 저항과 속도를 발생시킵니다 10 00:00:17,906 --> 00:00:19,423 게임 오브젝트에 rigidbody 11 00:00:19,423 --> 00:00:22,029 컴포넌트를 추가하면 rigidbody 오브젝트라고 12 00:00:22,029 --> 00:00:23,808 부르곤 합니다 13 00:00:24,128 --> 00:00:26,183 rigidbody 컴포넌트는 상호 작용을 기반으로 한 14 00:00:26,183 --> 00:00:28,337 물리력에 필요하며 게임 오브젝트가 15 00:00:28,337 --> 00:00:30,337 다른 물리 오브젝트와 상호 작용을 16 00:00:30,337 --> 00:00:33,059 하려면 연결된 충돌체가 있어야 합니다 17 00:00:33,227 --> 00:00:35,840 rigidbody가 없으면 power cube가 공중에 18 00:00:35,840 --> 00:00:37,394 떠 있기만 할 것입니다 19 00:00:37,604 --> 00:00:39,604 추가했을 때 어떤 현상이 일어나는지 살펴봅시다 20 00:00:39,828 --> 00:00:41,677 다른 컴포넌트와 마찬가지로 인스펙터 21 00:00:41,677 --> 00:00:43,277 하단의 [Add Component] 버튼을 22 00:00:43,277 --> 00:00:45,444 사용하거나 [Component] 상단 메뉴에서 23 00:00:45,444 --> 00:00:46,941 추가할 수 있습니다 24 00:00:47,123 --> 00:00:49,123 [Physics] 섹션에서 찾을 수 있습니다 25 00:00:51,129 --> 00:00:53,129 이제 오브젝트가 중력의 영향을 받아 26 00:00:53,129 --> 00:00:55,129 떨어지고 물리 엔진이나 적용된 힘으로 27 00:00:55,129 --> 00:00:57,129 제어할 수 있습니다 28 00:00:57,449 --> 00:00:59,449 rigidbody에는 다양한 옵션이 있습니다 29 00:00:59,645 --> 00:01:01,840 먼저 게임 오브젝트의 중력과 드래그 및 Angular Drag를 30 00:01:01,840 --> 00:01:04,312 제어하는 설정이 있습니다 31 00:01:04,312 --> 00:01:06,409 오브젝트의 Mass는 오브젝트와의 충돌을 처리하는 32 00:01:06,409 --> 00:01:08,006 방식에 영향을 줍니다 33 00:01:08,299 --> 00:01:10,299 Mass가 높은 게임 오브젝트는 Mass가 낮은 34 00:01:10,299 --> 00:01:12,467 게임 오브젝트와 충돌했을 때 덜 35 00:01:12,467 --> 00:01:13,433 반응합니다 36 00:01:13,671 --> 00:01:15,574 게임 오브젝트의 드래그는 다른 상호 작업 37 00:01:15,574 --> 00:01:17,200 없이 얼마나 빨리 느려지는지에 38 00:01:17,200 --> 00:01:18,269 영향을 줍니다 39 00:01:18,507 --> 00:01:20,410 공기 저항과 비슷하다고 생각하십시오 40 00:01:20,634 --> 00:01:22,717 그리고 직선 속도의 손실률을 결정하는 데 41 00:01:22,717 --> 00:01:24,213 사용됩니다 42 00:01:24,492 --> 00:01:26,629 비슷하게 Angular Drag는 게임 오브젝트의 43 00:01:26,629 --> 00:01:28,379 각속도를 느리게 하는 데 영향을 줍니다 44 00:01:28,379 --> 00:01:30,379 얼마나 빨리 회전하는지를 45 00:01:30,379 --> 00:01:31,931 예로 들 수 있겠죠 46 00:01:32,196 --> 00:01:34,154 예를 들어, 오브젝트를 돌리기 위해 47 00:01:34,154 --> 00:01:35,904 토크를 추가하면 48 00:01:35,904 --> 00:01:37,904 Angular Drag는 이 힘에 대한 저항력을 49 00:01:37,904 --> 00:01:40,110 발생시킵니다 다음 옵션은 50 00:01:40,110 --> 00:01:41,433 게임 오브젝트가 중력의 영향을 51 00:01:41,433 --> 00:01:43,071 받는지 여부를 결정합니다 52 00:01:43,532 --> 00:01:46,522 이 확인란을 선택해 중력을 사용합니다 53 00:01:47,602 --> 00:01:49,608 중력 설정은 Unity에서 [Edit] - 54 00:01:49,608 --> 00:01:54,419 [Project Settings] - [Physics] 영역에서 볼 수 있습니다 55 00:01:55,122 --> 00:01:57,513 기본적으로 실제 세계 값인 -9.81을 56 00:01:57,513 --> 00:01:59,126 갖는 3차원 벡터를 볼 수 57 00:01:59,126 --> 00:02:01,557 있습니다 58 00:02:02,027 --> 00:02:04,441 여기에서 전체적으로 사용자 지정할 수 59 00:02:04,441 --> 00:02:06,880 있으므로 플랫포머를 위한 낮은 60 00:02:07,380 --> 00:02:09,655 중력이나 퍼즐 게임의 일부로 다른 61 00:02:09,655 --> 00:02:11,655 축을 설정하는 것과 같이 재미있는 62 00:02:11,655 --> 00:02:13,082 효과를 만들 수도 있습니다 63 00:02:13,181 --> 00:02:16,065 예를 들어, 값을 5로 설정해 Z축에 64 00:02:16,065 --> 00:02:18,065 중력을 추가해 봅시다 65 00:02:20,250 --> 00:02:22,134 이제 power cube가 전역 Z축 66 00:02:22,134 --> 00:02:24,134 쪽으로 당겨집니다 67 00:02:25,905 --> 00:02:28,417 [Is Kinematic] 설정은 rigidbody가 68 00:02:28,417 --> 00:02:30,925 물리력에 반응할지 여부에 영향을 미칩니다 69 00:02:31,113 --> 00:02:33,782 보통 씬을 시작할 때 물리 엔진은 70 00:02:33,782 --> 00:02:36,969 rigidbody 오브젝트가 아닌 모든 정적 71 00:02:36,969 --> 00:02:39,202 지오메트리를 확인하며 효율성을 위해 72 00:02:39,202 --> 00:02:41,202 나중에 다시 확인하지 않습니다 73 00:02:41,202 --> 00:02:43,202 그러나 정적 오브젝트를 이동시킬 때 물리 엔진은 74 00:02:43,202 --> 00:02:45,966 정확하게 처리하기 위해 다른 모든 정적 오브젝트를 75 00:02:45,966 --> 00:02:48,383 다시 확인해야 하고, 이것 때문에 76 00:02:48,621 --> 00:02:50,621 성능이 저하될 수 있습니다 77 00:02:51,047 --> 00:02:53,752 이를 해결하려면 키네마틱 rigidbody 오브젝트를 78 00:02:53,752 --> 00:02:55,419 사용하여 translate 함수의 변형 79 00:02:55,419 --> 00:02:57,282 명령을 통해 이동시킬 수 있습니다 80 00:02:57,546 --> 00:02:59,546 이는 다른 오브젝트에는 영향을 주지만 자신에게는 81 00:02:59,546 --> 00:03:02,950 영향을 주지 않는 물리 오브젝트를 사용할 수 있다는 뜻입니다 82 00:03:03,229 --> 00:03:05,229 확실한 예는 퐁이나 브레이크아웃 83 00:03:05,229 --> 00:03:08,018 형식 게임의 패들이 될 것입니다 84 00:03:08,753 --> 00:03:11,778 이 예제에서 rigidbody power cube에 85 00:03:11,778 --> 00:03:13,778 [Use Gravity]을 선택합니다 86 00:03:14,154 --> 00:03:17,420 [Play]를 누르면 오브젝트가 지면에 떨어집니다 87 00:03:18,238 --> 00:03:21,349 둥근 prop samoflange 공 오브젝트도 있는 데, 88 00:03:21,349 --> 00:03:23,349 컴포넌트 설정은 비슷합니다 89 00:03:24,650 --> 00:03:27,220 power cube에 중력이 없으면 90 00:03:28,922 --> 00:03:30,922 아래로 떨어지지 않지만 다른 오브젝트의 91 00:03:30,922 --> 00:03:32,783 영향을 받습니다 92 00:03:33,242 --> 00:03:35,061 다른 오브젝트의 영향을 받지 않게 하려면 93 00:03:35,061 --> 00:03:38,313 [Is Kinematic]을 사용합니다 94 00:03:42,142 --> 00:03:44,543 그리고 변형을 통해 오브젝트를 이동시킬 수 있습니다 95 00:03:44,543 --> 00:03:46,833 translate 함수가 있는 96 00:03:46,833 --> 00:03:49,274 이 간단한 스크립트를 사용하여 97 00:03:49,274 --> 00:03:51,801 매 프레임마다 앞으로 이동시켜 98 00:03:51,801 --> 00:03:54,549 보겠습니다 99 00:03:56,858 --> 00:03:59,387 화면에 보이는 대로 오브젝트가 100 00:03:59,387 --> 00:04:02,084 다른 것과 계속 상호 작용을 하지만 101 00:04:02,084 --> 00:04:04,447 rigidbody가 남아 있어 일정하게 102 00:04:04,447 --> 00:04:06,280 물리 엔진에게 위치에 대한 정보를 103 00:04:06,280 --> 00:04:08,128 제공하면서 동시에 물리 엔진이 모든 104 00:04:08,128 --> 00:04:10,128 씬을 다시 확인하지 않도록 합니다 105 00:04:10,628 --> 00:04:13,041 [Interpolate] 및 [Extrapolate] 설정은 106 00:04:13,041 --> 00:04:14,859 떨림 현상을 해결합니다 107 00:04:14,986 --> 00:04:16,723 rigidbody를 통해 오브젝트가 이동할 때 108 00:04:16,723 --> 00:04:19,221 사소하지만 불필요한 움직임이 감지되면 109 00:04:19,221 --> 00:04:21,451 [보간] 설정을 사용하여 이전 프레임을 110 00:04:21,451 --> 00:04:23,827 기반으로 변형 이동을 부드럽게 합니다 111 00:04:23,827 --> 00:04:26,061 그리고 [보외] 설정은 다음 프레임의 112 00:04:26,061 --> 00:04:27,866 예상 위치를 기반으로 움직임을 113 00:04:27,866 --> 00:04:29,368 부드럽게 합니다 114 00:04:29,368 --> 00:04:31,094 다음 설정은 충돌 감지 유형에 대한 것으로 115 00:04:31,094 --> 00:04:33,527 [Discrete], [Continuous] 116 00:04:33,527 --> 00:04:35,527 [Continuous Dynamic]이 있습니다 117 00:04:36,085 --> 00:04:38,002 기본값은 Discrete인데 다른 문제가 118 00:04:38,002 --> 00:04:40,542 없으면 그냥 사용하는 것이 좋습니다 119 00:04:41,125 --> 00:04:43,125 Continuous는 빠르게 움직이는 오브젝트용이며 120 00:04:43,125 --> 00:04:46,053 정적 지오메트리와 상호 작용을 합니다 121 00:04:46,318 --> 00:04:48,944 그리고 Continuous Dynamic은 빠르게 움직이는 122 00:04:48,944 --> 00:04:50,820 오브젝트용이고 다른 동적 오브젝트와 상호 123 00:04:50,820 --> 00:04:52,388 작용을 합니다 124 00:04:52,971 --> 00:04:54,846 마지막으로 rigidbody 컴포넌트의 125 00:04:54,846 --> 00:04:56,846 Constraints 섹션은 물리력에 의한 126 00:04:56,846 --> 00:04:58,846 오브젝트의 이동과 회전을 제한할 수 있게 합니다 127 00:04:58,846 --> 00:05:00,846 예를 들어, 테트리스 형식의 128 00:05:00,846 --> 00:05:02,846 게임에서 정육면체가 129 00:05:02,846 --> 00:05:04,846 아래로 떨어질 때 회전하지 않도록 130 00:05:04,846 --> 00:05:07,168 하고 싶다면, 여기에서 회전 제약을 131 00:05:07,168 --> 00:05:09,502 사용하여 회전을 제한할 수 있습니다 132 00:05:10,193 --> 00:05:12,635 이 예제에서 power cube가 133 00:05:12,635 --> 00:05:15,026 작업대에 떨어집니다 이것은 rigidbody이며 134 00:05:15,026 --> 00:05:17,026 [Use Gravity]가 선택되어 있습니다 135 00:05:17,995 --> 00:05:19,995 기본적으로 이런 형태로 떨어집니다 136 00:05:20,302 --> 00:05:23,130 떨어질 때 회전하지 않도록 하려면 137 00:05:23,130 --> 00:05:26,053 제약 내에서 회전을 중지시킵니다 138 00:05:26,553 --> 00:05:29,815 이렇게 떨어져도 회전하지 않습니다