Version: 2021.1
언어: 한국어
오브젝트 지향 프로젝트를 위한 3D 물리
콜라이더

리지드바디 개요

리지드바디(Rigidbody) 는 게임 오브젝트의 물리적 동작을 가능하게 하는 주요 컴포넌트입니다. 리지드바디가 연결된 오브젝트는 중력에 즉시 반응합니다. Collider 컴포넌트도 하나 이상 추가할 경우 게임 오브젝트가 당하는 충돌에 의해 움직입니다.

Rigidbody 컴포넌트는 연결된 게임 오브젝트의 이동을 제어하므로 스크립트에서 포지션과 회전 같은 트랜스폼 프로퍼티를 변경하여 오브젝트를 이동하려고 하면 안됩니다. 그 대신 Forces 를 가하여 게임 오브젝트를 밀고 물리 엔진이 결과를 계산하도록 해야 합니다.

경우에 따라 게임 오브젝트에 리지드바디를 연결하되, 물리 엔진으로 모션이 제어되는 것을 원치 않을 수 있습니다. 예를 들어 스크립트 코드로 캐릭터를 직접 제어하면서도 캐릭터가 트리거(콜라이더에서 트리거 참조)에 의해 감지될 수 있게 하고 싶을 수 있습니다. 이렇게 스크립트로 생성되는 비물리적인 모션을 키네마틱 모션이라고 합니다. Rigidbody 컴포넌트에는 Is Kinematic 이라는 프로퍼티가 있습니다. 이 프로퍼티는 물리 엔진의 제어 대상에서 컴포넌트를 제외하고, 스크립트에서 컴포넌트가 물리 힘의 영향을 받지 않고 움직이도록 하기 위해 사용할 수 있습니다. 오브젝트에 대한 물리를 켜고 끌 수 있게 스크립트에서 Is Kinematic 값을 변경할 수 있지만, 성능 오버헤드가 발생하므로 신중하게 사용해야 합니다.

이 컴포넌트의 설정 및 스크립팅 옵션에 대한 자세한 내용은 리지드바디리지드바디 2D 레퍼런스 페이지를 참조하십시오.

휴면

리지드바디가 정의된 최소 선형 또는 회전 속도보다 느리게 이동하면 물리 엔진에서 정지했다고 간주됩니다. 그러면 게임 오브젝트가 충돌이나 힘을 받을 때까지 다시 이동하지 않으므로 “휴면” 모드로 설정됩니다. 이 최적화는 리지드바디가 다음 번에 “깨어날” 때까지(즉, 움직임을 다시 시작할 때까지), 리지드바드를 업데이트하는 데 프로세서 시간이 사용되지 않습니다.

대부분의 용도에서 Rigidbody 컴포넌트는 휴면 상태로 전환하고 깨우는 작업은 사용자가 인지하지 못하는 사이에 수행됩니다. 하지만 Transform 포지션을 수정하여 (리지드바디가 없는)정적 콜라이더를 게임 오브젝트 안으로 이동하거나 오브젝트에서 멀리 이동할 경우 오브젝트가 깨어나지 않을 수 있습니다. 이 경우 리지드바디 게임 오브젝트 아래의 바닥을 오브젝트 밖으로 이동하면 오브젝트가 공중에 매달릴 수 있습니다. 이러한 경우에는 WakeUp 함수를 사용하여 게임 오브젝트를 명시적으로 깨울 수 있습니다. 휴면에 대한 자세한 내용은 RigidbodyRigidbody 2D 컴포넌트 페이지를 참조하십시오.

오브젝트 지향 프로젝트를 위한 3D 물리
콜라이더