본 내용은 필자가 공부한 내용을 정리한 것으로 틀리거나 잘못된 내용이 있을 수 있습니다.
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)
리지드바디를 사용하기 위해서는 힘이나 토크를 사용해야합니다. 이때 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 |