Kinematic Body Type 리지드바디 2D는 시뮬레이션에서 매우 명시적인 사용자 제어 하에서만 움직이도록 설계됩니다.동역학 리지드바디 2D는 중력과 힘의 영향을 받지만, 키네마틱 리지드바디 2D는 그렇지 않습니다.따라서 키네마틱 리지드바디 2D는 동적 리지드바디 2D보다 시스템 리소스를 덜 소모해서 더 빠르게 시뮬레이션할 수 있습니다.
키네마틱 리지드바디 2D의 위치를 변경하려면 Rigidbody2D.MovePosition 또는 Rigidbody2D.MoveRotation을 통해 명시적으로 위치를 변경해야 합니다.물리 쿼리를 사용하여 충돌을 감지하고 스크립트를 사용하여 리지드바디 2D가 어디로 어떻게 움직여야 하는지 결정합니다.
키네마틱 리지드바디 2D는 여전히 속도를 통해 움직일 수 있지만, 그 속도는 힘이나 중력의 영향을 받지 않습니다.키네마틱 리지드바디 2D는 다른 키네마틱 리지드바디 2D나 정적 리지드바디 2D와 충돌하지 않으며, 동적 리지드바디 2D와만 충돌합니다.키네마틱 리지드바디 2D는 충돌 시 마치 무한 질량을 가진 부동 오브젝트처럼 동작하며, 이 바디 타입에서는 질량 관련 프로퍼티를 사용할 수 없습니다.
프로퍼티 | 기능 | |
---|---|---|
Body Type | 이 옵션을 선택하면 이 리지드바디 2D의 컴포넌트 설정의 움직임 동작과 콜라이더 2D 상호작용을 설정할 수 있습니다. | |
Dynamic | 이 옵션을 선택하면 이 리지드바디 2D가 동적 바디 타입으로 설정됩니다. 이것은 시뮬레이션을 통해 움직이도록 설계되었으며 모든 Rigidbody 2D 프로퍼티를 사용할 수 있습니다.이것은 리지드바디 2D의 기본 바디 타입입니다. | |
Kinematic | 이 옵션을 선택하면 이 리지드바디 2D가 키네마틱 바디 타입으로 설정됩니다. 이것은 시뮬레이션에서 매우 명시적인 사용자 제어 하에서만 움직이도록 설계됩니다. | |
Static | 선택하면 이 리지드바디 2D가 정적 바디 타입으로 설정됩니다. 이것은 시뮬레이션 하에서 전혀 움직이지 않도록 설계되어 질량이 무한한 부동 오브젝트처럼 작동합니다.자세한 내용은 바디 타입:정적을 참조하십시오. | |
Material | 이 리지드바디 2D에 연결된 모든 콜라이더 2D에 공통 물리 머티리얼을 설정합니다.참고:콜라이더 2D는 세트가 하나 있는 경우 자체 머티리얼 프로퍼티를 사용합니다.여기에서나 콜라이더 2D에 머티리얼이 지정되지 않은 경우 기본 옵션은 None (Physics Material 2D)입니다.여기에는 Physics 2D 창에서 설정할 수 있는 기본 머티리얼이 사용됩니다. | |
Simulated | 리지드바디 2D와 연결된 모든 콜라이더 2D 및 조인트 2D가 런타임 중에 물리 시뮬레이션과 상호작용하도록 하려면 Simulated를 활성화합니다. 이를 비활성화하면 이러한 컴포넌트가 시뮬레이션과 상호작용하지 않습니다. 자세한 내용은 아래 Rigidbody 2D 프로퍼티: Simulated를 참조하십시오. 이 프로퍼티는 기본적으로 활성화되어 있습니다. | |
Full Kinematic Contact | 리지드바디 2D가 다른 모든 리지드바디 2D 바디 타입과 충돌할 수 있게 하려면 이 프로퍼티를 활성화합니다.참고:이 프로퍼티를 비활성화하면 키네마틱 리지드바디 2D는 동적 리지드바디 2D와만 충돌합니다.자세한 내용은 풀 키네마틱 컨택트 사용을 참조하십시오. | |
Collision Detection | 콜라이더 2D 간의 충돌을 검사하는 방식을 정의합니다. | |
분리 | 이 옵션을 선택하면 리지드바디 2D와 콜라이더 2D가 있는 게임 오브젝트가 충분히 빠르게 움직이는 경우 물리 업데이트 중에 서로 겹치거나 통과할 수 있습니다.충돌 접점은 새 포지션에서만 생성됩니다. | |
Continuous | 이 옵션을 선택하면 물리 업데이트 중에 리지드바디 2D와 콜라이더 2D가 있는 게임 오브젝트가 서로 통과하지 않게 됩니다.대신 Unity는 콜라이더 2D의 첫 번째 임팩트 포인트를 계산하여 게임 오브젝트를 해당 지점으로 이동합니다.참고:이 옵션은 Discrete보다 CPU 시간이 더 많이 걸립니다. | |
Sleeping Mode | 게임 오브젝트가 휴식 상태일 때 프로세서 시간을 절약하기 위해 “수면”모드에 들어가는 방법을 정의합니다. | |
Never Sleep | 이 옵션을 선택하면 잠자기 모드가 비활성화됩니다.중요:이것은 시스템 리소스에 영향을 줄 수 있으므로 가능한 한 피해야 합니다. | |
Start Awake | 게임 오브젝트를 처음에 깨우려면 이 옵션을 선택합니다. | |
Start Asleep | 이 옵션을 선택하면 게임 오브젝트가 처음에는 잠자기 모드이지만 충돌에 의해 깨어날 수 있습니다. | |
Interpolate | 물리 업데이트 사이에 게임 오브젝트 움직임이 보간되는 방법을 정의합니다.팁:이는 움직임이 어색할 때 유용합니다. | |
없음 | 움직임에 스무딩을 적용하지 않으려면 이 옵션을 선택하십시오. | |
Interpolate | 이전 프레임에서 게임 오브젝트의 포지션을 기반으로 움직임을 부드럽게 하려면 이 옵션을 선택하십시오. | |
Extrapolate | 이 옵션을 선택하면 다음 프레임에서의 게임 오브젝트 포지션을 추정해 움직임을 스무딩할 수 있습니다. | |
Constraints | 리지드바디 2D의 움직임에 대한 제약사항을 정의합니다. | |
Freeze Position | X 및 Y 월드 축에서 움직이는 리지드바디 2D를 선택적으로 정지시킵니다. | |
Freeze Rotation | Z 월드 축를 중심으로 회전하는 리지드바디 2D를 선택적으로 정지시킵니다. | |
Layer Overrides | 확장하여 레이어 오버라이드를 설정할 수 있습니다. | |
Include Layers | 다른 콜라이더 2D와의 충돌 여부를 결정할 때 이 리지드바디 2D에 연결된 모든 콜라이더 2D가 포함해야 하는 추가 레이어를 선택합니다.자세한 내용은 Rigidbody2D-includeLayers를 참조하십시오. | |
Exclude Layers | 다른 콜라이더 2D와의 충돌 여부를 결정할 때 이 리지드바디 2D에 연결된 모든 콜라이더 2D가 제외해야 하는 추가 레이어를 선택합니다.자세한 내용은 Rigidbody2D-excludeLayers를 참조하십시오. |
Full Kinematic Contacts를 활성화하면 키네마틱 리지드바디 2D가 모든 리지드바디 2D 바디 타입과 충돌할 수 있습니다.이것은 동적 리지드바디 2D의 동작과 유사하지만, 키네마틱 리지드바디 2D가 다른 리지드바디 2D와 접촉할 때 물리 시스템에 의해 움직이지 않는다는 점이 다릅니다.대신 질량이 무한한 부동 오브젝트처럼 동작합니다.
이 프로퍼티를 비활성화하면 키네마틱 리지드바디 2D는 동적 리지드바디 2D와만 충돌하고 다른 바디 타입과는 충돌하지 않습니다.참고:트리거 콜라이더는 이 규칙의 예외입니다.이것은 충돌 스크립팅 콜백(OnCollisionEnter, OnCollisionStay, OnCollisionExit이 발생하지 않는다는 뜻입니다.
이것은 리지드바디 2D가 이동해야 하는 포지션 및 방법을 감지하기 위해 물리 쿼리(예: Physics.Raycast)를 사용할 때나 여러 키네마틱 리지드바디 2D가 서로 상호작용하도록 해야 할 때 불편할 수 있습니다.Use Full Kinematic Contacts를 활성화하면 Kinematic Rigidbody 2D 컴포넌트가 이러한 방식으로 상호 작용합니다.
팁:Use Full Kinematic Contacts는 키네마틱 리지드바디 2D의 명시적 위치 및 회전 제어를 허용하지만 여전히 전체 충돌 콜백을 허용합니다.모든 리지드바디 2D를 명시적으로 제어해야 하는 설정에서는 동적 리지드바디 2D 대신 키네마틱 리지드바디 2D를 사용하면 완전한 충돌 콜백을 계속 지원받을 수 있습니다.