본문 바로가기

Unity/다루기

[유니티] 1. 리지드바디 (Rigidbody)

 

본 내용은 필자가 공부한 내용을 정리한 것으로 틀리거나 잘못된 내용이 있을 수 있습니다.

 


 c# 기초 카테고리에 있는 글들은 문법에 관한 글이었다면, 스크립팅에서는 스크립트를 짤 때 쓰이는 툴에 관해 작성하고자 합니다.

Rigidbody(이하 리지드바디)는 오브젝트의 물리적 동작을 가능하게 해주는 주요 컴포넌트 중 하나입니다.

 

1. Add Component를 통해 리지드바디 추가 2. 추가된 리지드바디

 

리지드바디의 요소는 각각 다음을 의미합니다.

요소 기능
Mass 오브젝트의 질량 (단위 kg)
Drag 공기저항 (값이 클수록 속도가 빨리 감소)
Angular Drag 회전 시의 공기저항 (값이 클수록 회전속도가 빨리 감소)
Use Gravity 오브젝트에게 작용하는 중력의 영향 여부 (체크 시 중력 작용)
Is Kinematic 오브젝트에게 작용하는 물리효과의 여부 (체크 시 물리효과 무시)
Interpolate 움직임을 부드럽게 하기 위한 기능
-none: 적용하지 않음
-interpolate: 이전 프레임의 위치에 맞게 움직임 보간
-extrapolate: 다음 프레임의 위치를 추정해 움직임 보간
Collision Detection 빠르게 움직이는 오브젝트가 충돌의 감지 없이 다른 오브젝트를 지나쳐가는 것을 방지
-discrete: 모든 콜라이더와 불연속 충돌 검사. 일반적인 방법
-continuous: 'continuous dynamic'인 오브젝트와 연속적 충돌 검사. 그 외는 불연속 충돌 검사
-continuous dynamic: 상동 (충돌 검사 대상은 continuous)
-continuous speculative: 표 아래의 링크 참고
Constraint 움직임 고정
-freeze position: 월드 좌표계의 축에서의 이동을 막음
-freeze rotation: 로컬 좌표계의 축에서의 회전을 막음

 

continuous speculative: 연속 충돌 검사(CCD)

 

연속 충돌 검사(CCD) - Unity 매뉴얼

CCD는 빠르게 움직이는 바디가 오브젝트를 지나치거나 통과하지 않고 충돌하도록 합니다. Unity는 다음의 CCD 메서드를 제공합니다.

docs.unity3d.com

 

 

리지드바디를 사용하기 위해서는 힘이나 토크를 사용해야합니다. 이때 AddForce(), AddTorque()를 사용할 수 있습니다. 단, 리지드바디에 힘을 가할 때는 트랜스폼을 이용하여 직접 움직이게 하면 안됩니다.

리지드바디를 이용하더라도 콜라이더가 없다면 충돌을 하더라도 아무 일 없이 서로 스쳐 지나가기만 합니다.

'Unity > 다루기' 카테고리의 다른 글

[유니티] 거리 측정하기  (0) 2021.06.06
[유니티] 난수 발생  (0) 2021.05.30
[유니티] 4. 콜라이더(collider), 트리거  (0) 2021.05.26
[유니티] 3. 이동시키기  (0) 2021.05.19
[유니티] 2. 키보드 입력받기 (Input)  (0) 2021.05.12