0:00:00.000,0:00:01.931 일반적으로 게임에서 게임 오브젝트를 0:00:01.931,0:00:03.931 움직이게 하려면 해당 오브젝트가 0:00:03.931,0:00:05.058 rigidbody 오브젝트인지 0:00:05.058,0:00:06.685 확인해야 합니다 0:00:07.185,0:00:09.185 rigidbody는 게임 오브젝트가 물리력의 0:00:09.185,0:00:11.365 영향을 받도록 하는 컴포넌트입니다 0:00:11.365,0:00:13.365 오브젝트가 중력에 의해 아래로 떨어지고 0:00:13.365,0:00:15.809 질량과 같은 물리적 속성을 가지며 0:00:15.809,0:00:17.406 저항과 속도를 발생시킵니다 0:00:17.906,0:00:19.423 게임 오브젝트에 rigidbody 0:00:19.423,0:00:22.029 컴포넌트를 추가하면 rigidbody 오브젝트라고 0:00:22.029,0:00:23.808 부르곤 합니다 0:00:24.128,0:00:26.183 rigidbody 컴포넌트는[br]상호 작용을 기반으로 한 0:00:26.183,0:00:28.337 물리력에 필요하며 게임 오브젝트가 0:00:28.337,0:00:30.337 다른 물리 오브젝트와 상호 작용을 0:00:30.337,0:00:33.059 하려면 연결된 충돌체가 있어야 합니다 0:00:33.227,0:00:35.840 rigidbody가 없으면 power cube가 공중에 0:00:35.840,0:00:37.394 떠 있기만 할 것입니다 0:00:37.604,0:00:39.604 추가했을 때 어떤 현상이[br]일어나는지 살펴봅시다 0:00:39.828,0:00:41.677 다른 컴포넌트와 마찬가지로 인스펙터 0:00:41.677,0:00:43.277 하단의 [Add Component] 버튼을 0:00:43.277,0:00:45.444 사용하거나 [Component] 상단 메뉴에서 0:00:45.444,0:00:46.941 추가할 수 있습니다 0:00:47.123,0:00:49.123 [Physics] 섹션에서 찾을 수 있습니다 0:00:51.129,0:00:53.129 이제 오브젝트가 중력의 영향을 받아 0:00:53.129,0:00:55.129 떨어지고 물리 엔진이나 적용된 힘으로 0:00:55.129,0:00:57.129 제어할 수 있습니다 0:00:57.449,0:00:59.449 rigidbody에는 다양한 옵션이 있습니다 0:00:59.645,0:01:01.840 먼저 게임 오브젝트의 중력과 드래그 및[br]Angular Drag를 0:01:01.840,0:01:04.312 제어하는 설정이 있습니다 0:01:04.312,0:01:06.409 오브젝트의 Mass는 오브젝트와의 충돌을 처리하는 0:01:06.409,0:01:08.006 방식에 영향을 줍니다 0:01:08.299,0:01:10.299 Mass가 높은 게임 오브젝트는 Mass가 낮은 0:01:10.299,0:01:12.467 게임 오브젝트와 충돌했을 때 덜 0:01:12.467,0:01:13.433 반응합니다 0:01:13.671,0:01:15.574 게임 오브젝트의 드래그는 다른 상호 작업 0:01:15.574,0:01:17.200 없이 얼마나 빨리 느려지는지에 0:01:17.200,0:01:18.269 영향을 줍니다 0:01:18.507,0:01:20.410 공기 저항과 비슷하다고 생각하십시오 0:01:20.634,0:01:22.717 그리고 직선 속도의 손실률을 결정하는 데 0:01:22.717,0:01:24.213 사용됩니다 0:01:24.492,0:01:26.629 비슷하게 Angular Drag는 게임 오브젝트의 0:01:26.629,0:01:28.379 각속도를 느리게 하는 데 영향을 줍니다 0:01:28.379,0:01:30.379 얼마나 빨리 회전하는지를 0:01:30.379,0:01:31.931 예로 들 수 있겠죠 0:01:32.196,0:01:34.154 예를 들어, 오브젝트를 돌리기 위해 0:01:34.154,0:01:35.904 토크를 추가하면 0:01:35.904,0:01:37.904 Angular Drag는 이 힘에 대한 저항력을 0:01:37.904,0:01:40.110 발생시킵니다[br]다음 옵션은 0:01:40.110,0:01:41.433 게임 오브젝트가 중력의 영향을 0:01:41.433,0:01:43.071 받는지 여부를 결정합니다 0:01:43.532,0:01:46.522 이 확인란을 선택해 중력을 사용합니다 0:01:47.602,0:01:49.608 중력 설정은 Unity에서 [Edit] - 0:01:49.608,0:01:54.419 [Project Settings] - [Physics] 영역에서[br]볼 수 있습니다 0:01:55.122,0:01:57.513 기본적으로 실제 세계 값인 -9.81을 0:01:57.513,0:01:59.126 갖는 3차원 벡터를 볼 수 0:01:59.126,0:02:01.557 있습니다 0:02:02.027,0:02:04.441 여기에서 전체적으로 사용자 지정할 수 0:02:04.441,0:02:06.880 있으므로 플랫포머를 위한 낮은 0:02:07.380,0:02:09.655 중력이나 퍼즐 게임의 일부로 다른 0:02:09.655,0:02:11.655 축을 설정하는 것과 같이 재미있는 0:02:11.655,0:02:13.082 효과를 만들 수도 있습니다 0:02:13.181,0:02:16.065 예를 들어, 값을 5로 설정해 Z축에 0:02:16.065,0:02:18.065 중력을 추가해 봅시다 0:02:20.250,0:02:22.134 이제 power cube가 전역 Z축 0:02:22.134,0:02:24.134 쪽으로 당겨집니다 0:02:25.905,0:02:28.417 [Is Kinematic] 설정은 rigidbody가 0:02:28.417,0:02:30.925 물리력에 반응할지 여부에 영향을 미칩니다 0:02:31.113,0:02:33.782 보통 씬을 시작할 때 물리 엔진은 0:02:33.782,0:02:36.969 rigidbody 오브젝트가 아닌 모든 정적 0:02:36.969,0:02:39.202 지오메트리를 확인하며 효율성을 위해 0:02:39.202,0:02:41.202 나중에 다시 확인하지 않습니다 0:02:41.202,0:02:43.202 그러나 정적 오브젝트를 이동시킬 때 물리 엔진은 0:02:43.202,0:02:45.966 정확하게 처리하기 위해[br]다른 모든 정적 오브젝트를 0:02:45.966,0:02:48.383 다시 확인해야 하고, 이것 때문에 0:02:48.621,0:02:50.621 성능이 저하될 수 있습니다 0:02:51.047,0:02:53.752 이를 해결하려면 키네마틱 rigidbody 오브젝트를 0:02:53.752,0:02:55.419 사용하여 translate 함수의 변형 0:02:55.419,0:02:57.282 명령을 통해 이동시킬 수 있습니다 0:02:57.546,0:02:59.546 이는 다른 오브젝트에는[br]영향을 주지만 자신에게는 0:02:59.546,0:03:02.950 영향을 주지 않는 물리 오브젝트를[br]사용할 수 있다는 뜻입니다 0:03:03.229,0:03:05.229 확실한 예는 퐁이나 브레이크아웃 0:03:05.229,0:03:08.018 형식 게임의 패들이 될 것입니다 0:03:08.753,0:03:11.778 이 예제에서 rigidbody power cube에 0:03:11.778,0:03:13.778 [Use Gravity]을 선택합니다 0:03:14.154,0:03:17.420 [Play]를 누르면 오브젝트가 지면에 떨어집니다 0:03:18.238,0:03:21.349 둥근 prop samoflange 공 오브젝트도 있는 데, 0:03:21.349,0:03:23.349 컴포넌트 설정은 비슷합니다 0:03:24.650,0:03:27.220 power cube에 중력이 없으면 0:03:28.922,0:03:30.922 아래로 떨어지지 않지만 다른 오브젝트의 0:03:30.922,0:03:32.783 영향을 받습니다 0:03:33.242,0:03:35.061 다른 오브젝트의 영향을 받지 않게 하려면 0:03:35.061,0:03:38.313 [Is Kinematic]을 사용합니다 0:03:42.142,0:03:44.543 그리고 변형을 통해[br]오브젝트를 이동시킬 수 있습니다 0:03:44.543,0:03:46.833 translate 함수가 있는 0:03:46.833,0:03:49.274 이 간단한 스크립트를 사용하여 0:03:49.274,0:03:51.801 매 프레임마다 앞으로 이동시켜 0:03:51.801,0:03:54.549 보겠습니다 0:03:56.858,0:03:59.387 화면에 보이는 대로 오브젝트가 0:03:59.387,0:04:02.084 다른 것과 계속 상호 작용을 하지만 0:04:02.084,0:04:04.447 rigidbody가 남아 있어 일정하게 0:04:04.447,0:04:06.280 물리 엔진에게 위치에 대한 정보를 0:04:06.280,0:04:08.128 제공하면서 동시에 물리 엔진이 모든 0:04:08.128,0:04:10.128 씬을 다시 확인하지 않도록 합니다 0:04:10.628,0:04:13.041 [Interpolate] 및 [Extrapolate] 설정은 0:04:13.041,0:04:14.859 떨림 현상을 해결합니다 0:04:14.986,0:04:16.723 rigidbody를 통해 오브젝트가 이동할 때 0:04:16.723,0:04:19.221 사소하지만 불필요한 움직임이 감지되면 0:04:19.221,0:04:21.451 [보간] 설정을 사용하여 이전 프레임을 0:04:21.451,0:04:23.827 기반으로 변형 이동을 부드럽게 합니다 0:04:23.827,0:04:26.061 그리고 [보외] 설정은 다음 프레임의 0:04:26.061,0:04:27.866 예상 위치를 기반으로 움직임을 0:04:27.866,0:04:29.368 부드럽게 합니다 0:04:29.368,0:04:31.094 다음 설정은 충돌 감지 유형에 대한 것으로 0:04:31.094,0:04:33.527 [Discrete], [Continuous] 0:04:33.527,0:04:35.527 [Continuous Dynamic]이 있습니다 0:04:36.085,0:04:38.002 기본값은 Discrete인데 다른 문제가 0:04:38.002,0:04:40.542 없으면 그냥 사용하는 것이 좋습니다 0:04:41.125,0:04:43.125 Continuous는 빠르게 움직이는 오브젝트용이며 0:04:43.125,0:04:46.053 정적 지오메트리와 상호 작용을 합니다 0:04:46.318,0:04:48.944 그리고 Continuous Dynamic은 빠르게 움직이는 0:04:48.944,0:04:50.820 오브젝트용이고 다른 동적 오브젝트와 상호 0:04:50.820,0:04:52.388 작용을 합니다 0:04:52.971,0:04:54.846 마지막으로 rigidbody 컴포넌트의 0:04:54.846,0:04:56.846 Constraints 섹션은 물리력에 의한 0:04:56.846,0:04:58.846 오브젝트의 이동과 회전을 제한할 수 있게 합니다 0:04:58.846,0:05:00.846 예를 들어, 테트리스 형식의 0:05:00.846,0:05:02.846 게임에서 정육면체가 0:05:02.846,0:05:04.846 아래로 떨어질 때 회전하지 않도록 0:05:04.846,0:05:07.168 하고 싶다면, 여기에서 회전 제약을 0:05:07.168,0:05:09.502 사용하여 회전을 제한할 수 있습니다 0:05:10.193,0:05:12.635 이 예제에서 power cube가 0:05:12.635,0:05:15.026 작업대에 떨어집니다[br]이것은 rigidbody이며 0:05:15.026,0:05:17.026 [Use Gravity]가 선택되어 있습니다 0:05:17.995,0:05:19.995 기본적으로 이런 형태로 떨어집니다 0:05:20.302,0:05:23.130 떨어질 때 회전하지 않도록 하려면 0:05:23.130,0:05:26.053 제약 내에서 회전을 중지시킵니다 0:05:26.553,0:05:29.815 이렇게 떨어져도 회전하지 않습니다