-
rigidbody 2D는 게임 오브젝트가 2D 물리의
-
영향을 받도록 하는 컴포넌트입니다
-
또한 게임 오브젝트에는 충돌체 2D가 연결되어
-
2D 물리로 다른 게임 오브젝트와 상호 작용을
-
할 수 있어야 합니다
-
rigidbody 2D는 2D 조인트과 같이
-
특화된 2D 물리 컴포넌트로
-
작업할 때 필요합니다
-
또한 rigidbody 2D는 질량,
Linear & Angular Drag
-
중력 규모와 같은 게임 오브젝트에 대한
-
중요한 물리 속성과 기타 속성을
-
정의하는 데 사용됩니다
-
3D 물리와 달리 rigidbody 2D에는
-
중력 규모가 있어 게임 오브젝트 당
-
중력을 각각 설정할 수
-
있도록 합니다
-
이 씬에서 prop_ammo_crate는
-
스프라이트를 유지하고 렌더링하기 위해
-
스프라이트 렌더러를 구비한
단순한 게임 오브젝트입니다
-
[Play Mode]에서는
아무 일도 발생하지 않습니다
-
[Add Component] -
[Physics 2D] - [Rigidbody 2D]로
-
rigidbody 2D를 연결하여
-
2D 물리 형태를 탄약 상자에
추가할 수 있습니다
-
게임 오브젝트에 컴포넌트를 연결하는
-
다른 방법도 있습니다
-
컴포넌트에 대한 자세한 내용과
-
게임 오브젝트에 추가하는 방법은
-
아래 링크에 있는 정보를 참조하십시오
-
이제 [Play Mode]에서 탄약 상자는 중력의
-
영향을 받아 아래로 떨어집니다
-
그러나 상자는 우주선과 충돌하지 않습니다
-
2D 물리를 사용하여 다른 게임 오브젝트와
상호 작용을 하게 하려면
-
관련된 모든 게임 오브젝트에
충돌체 2D 컴포넌트가 필요하고
-
적어도 하나에는 rigidbody 2D가
연결되어야 합니다
-
우주선에는 이미 2D 충돌체가 있습니다
-
[Add Component] - [Physics 2D] -
-
[Box Collider]를 선택하여 탄약 상자에
-
충돌체 2D 컴포넌트를 추가할 수 있습니다
-
2D 충돌체의 크기는 스프라이트 크기에
-
자동으로 맞춰집니다
-
이 경우 충돌체는 탄약 상자 이미지에 맞도록
-
크기가 조정되어야 합니다
-
이제 [Play Mode]에서
-
탄약 상자가 우주선의 위쪽부터
-
충동하게 됩니다
-
2D 충돌체에 대한 자세한 내용은
-
아래 링크에 있는 정보를 참조하십시오
-
rigidbody 2D 컴포넌트는 게임 오브젝트가
-
2D 물리의 영향을 받도록 할 뿐만 아니라
-
게임 오브젝트에 대한 중요한 물리 속성을
-
정의하는 데도 사용됩니다
-
질량은 rigidbody 2D의 질량입니다
-
현실 세계와 마찬가지로
-
질량이 많은 2D rigidbody일수록
-
옮기는 데 더 많은 힘이
필요하고 다른 2D rigidbody와
-
충돌했을 때 더 큰 영향을 줍니다
-
이 첫 예제의 경우, 탄약 상자와
-
소행성의 질량이 같습니다
-
소행성의 질량이 변경되었을 때
-
두 게임 오브젝트 간의 상호 작용은
-
상당히 달라집니다
-
Linear & Angular Drag는 2D rigidbody의
-
속도에 영향을 줍니다
-
이것을 공기 저항과 비슷하게 생각해 보십시오
-
Linear Drag는 rigidbody 2D의 속도나
-
속력을 느리게 합니다
-
그리고 Angular Drag는 회전이나
-
각속도를 느리게 합니다
-
[Gravity Scale]은 rigidbody 2D에
영향을 주는 중력을 제어합니다
-
중력의 전역 값을 변경하는 것과는 달리
-
중력 규모는 게임 오브젝트 각각의
-
정밀한 제어가 가능하게 합니다
-
[Play Mode]에서 탄약 상자는
-
중력의 영향을 받아 아래로 떨어집니다
-
중력 규모 값이 낮을수록
-
게임 오브젝트는 느리게 떨어집니다
-
중력을 무시하려면
이 값을 0으로 설정하십시오
-
[Fixed Angle]을 선택하면 rigidbody 2D가
-
2D 물리력에 반응하지만
-
회전하지 않습니다
-
일반적인 조건에서 소행성은 추락하고 상자와
-
충돌해 다른 방향으로 가버립니다
-
고정각을 선택하면
-
소행성은 충돌과 같은 물리력에
-
계속 반응합니다
-
그러나 회전하지는 않습니다
-
[Is Kinematic]을 선택하면
-
rigidbody 2D는 키네마틱 rigidbody 2D로
-
간주되고 중력과
-
충돌을 포함하여 2D 물리력의 영향을
-
받지 않습니다
-
일반적으로 물리 또는
물리력을 사용치 않고
-
2D 충돌체로 게임 오브젝트를
-
이동할 때 수행됩니다
-
이동 플랫폼을 만들 때를 예로 들어봅시다
-
플랫폼은 스크립트나 애니메이션으로
-
제어할 수 있으며
-
물리력이 아닌 변환에 따라
-
이동합니다
-
그러나 플랫폼은 다른 2D 게임 오브젝트와
-
상호 작용을 해야 합니다
-
그러므로 플랫폼에도 2D 충돌체가
-
연결되어야 합니다
-
이는 충돌체 2D가 연결된 이동 게임 오브젝트가
-
있다는 것을 의미합니다
-
게임이 재생되는 동안 충돌체 2D를 이동하려면
-
rigidbody 2D도 연결하는 것이
-
권장됩니다
-
여기서는 이 플랫폼이 물리력에
-
반응하지 않도록 합니다
-
이 경우 rigidbody는 [Is Kinematic]으로
-
설정됩니다
-
이 플랫폼은 스크립팅으로 연결된
-
2D 충돌체에 따라 이동합니다
-
[Interpolate] 설정은 게임 오브젝트가 부드럽게
-
움직일 수 있게 합니다
-
rigidbody 2D로 옮길 때 게임 오브젝트에
-
떨림 현상이 있으면
-
이 보간 설정을 사용하여 변환 이동을
-
부드럽게 합니다
-
보간 설정은 이전 프레임의
-
게임 오브젝트 위치를 기반으로
-
이동을 부드럽게 합니다
-
그리고 [Extrapolate] 설정은
다음 프레임의
-
위치를 예상하는 데 사용됩니다
-
[Sleeping Mode]는
처리 시간을 절약하기 위해
-
rigidbody의 수면 설정을 제어합니다
-
[Never Sleep]은 수면 기능을
-
비활성화하고 [Start Awake]은
instantiate 할 때
-
rigidbody 2D가 동작하도록 합니다
-
[Start Asleep]은 처음에는 rigidbody 2D를
-
수면 상태로 유지하지만
-
충돌 시 바로 동작할 수 있게 합니다
-
수면 기능에 대한 자세한 내용은
-
아래 링크에 있는 정보를 참조하십시오
-
충돌 감지 설정은 rigidbody 2D에서
-
사용되는 충돌 감지 유형을
-
제어합니다
-
기본값은 [Discrete]이며
-
문제가 없는 경우 이 값을 사용하는 것이
-
가장 좋습니다
-
이 경우, Pysics Update 중에
-
게임 오브젝트의 2D 충돌체가
-
다른 충돌체와 충돌했을 시 등록됩니다
-
[Continuous]은 빠르게 이동하는
게임 오브젝트용이며
-
업데이트 사이에 게임 오브젝트가 다른 것과
-
충돌했을 경우 충돌이 등록됩니다
-
물리 2D 및 rigidbody
2D에 대한 자세한 내용은
-
아래 링크에 있는 정보를 참조하십시오