리지드바디는 유니티에서 필수적으로 사용되는 요소이기 때문에 확실하게 파악해둘 필요가 있다.
언제나 그렇듯 유니티 공식문서를 먼저 살펴보면 이해에 큰 도움이 된다.
유니티에서 게임오브젝트를 생성한 뒤 ' Add Component ' 를 통해서 리지드바디 컴포넌트를 추가할 수 있다.
리지드 바디에는 많은 속성 값들이 존재하므로 이를 하나씩 살펴보도록 하자.
Rigidbody의 속성 값
- mass
물체의 질량을 뜻한다. 기본값은 Kg이고, 수치를 높일수록 무거워진다.
- Drag
공기저항 값. 오브젝트가 움직일 때 공기저항의 크기를 입력할 수 있다.
0이면 저항이 없고, 무한대를 입력하면 오브젝트가 즉시 정지하게 된다.
- Angular Drag
토크로 오브젝트를 회전시킬 때, 회전 공기저항 값.
0일때는 저항이 없으나, 무한대로 설정한다고 해서 회전이 멈추지는 않는다.
- Use Gravity
중력의 영향을 받을 것인지 설정할 수 있다. 체크를 통해서 on/off 할 수 있다.
- Is Kinematic
물리엔진의 영향을 받을 것인지, 물리엔진을 무시하고 로직을 통해서만 움직일 것인지를 결정할 수 있다.
해당 속성을 체크할 경우 오로지 Transform으로만 조작된다.
- Interpolate
물리엔진에서 움직임을 얼마나 자연스럽게 보정할지를 선택할 수 있다.
3가지 중 하나를 선택할 수 있다.
- None - Interpolate 기능을 사용하지 않는다. (보간이 적용되지 않음)
- Interpolate - 이전 프레임을 기반으로 보정하여 움직임을 부드럽게 보정함.
- Extrapolate - 다음 프레임의 움직임을 추정해서 움직임을 부드럽게 보정함.
- Collision Detection
물체의 속도가 지나치게 빠를 경우에는 충돌을 하지 않고 지나치는 경우가 발생할 수 있다.
이동속도가 빠르면 프레임을 기준으로 일정거리를 뛰어넘을 수도 있기 때문이다.
예전에 나도 개발을 진행하면서 분명히 충돌을 해야하는데 하지 않는 상황이 발생해서 골치 아팠던 적이 있는데
해당 속성 값을 변경하는 것으로 해결할 수 있었다.
- Discrete : 일반적인 충돌 감지 방식으로 모든 collider와의 충돌을 검사하여 감지한다.
- Continuous : 배경이나 Static 등 고정되어있는 것과의 충돌을 인식할때 사용된다.
- Continuous Dynamic : 위의 두 방식을 번갈아 사용하면서 충돌을 인식한다.
- Continuous Speculative : Continuous Dynamic 보다 성능적으로 가볍다. 다만, 실제로 충돌을 하지 않았지만 두 물체가 충돌했다고 인식하는 경우가 발생할 수 있다고 한다.
- Constraints
리지드바디의 움직임을 제한한다.
X,Y,Z 축의 이동이나 회전을 선택해서 제한할 수 있다.
굉장히 자주 사용되는 기능 중에 하나이다.
이상으로 리지드바디의 속성값을 알아보았다.
다음은 리지드바디를 활용해서 캐릭터의 움직임을 구현해보도록 하자.
'유니티 Unity > 유니티 기능 구현' 카테고리의 다른 글
[유니티] 리지드바디(Rigidbody) 스크립팅 (0) | 2021.09.11 |
---|---|
[유니티] Rigidbody(리지드바디)로 플레이어 움직임 구현하기 - 1 (0) | 2021.09.10 |
[유니티] Invoke(인보크) 메소드의 사용법 총정리 (1) | 2021.09.08 |
유니티 C# : 주변 오브젝트 날려버리기 - AddExplosionForce (0) | 2021.07.02 |
월드 UI가 플레이어 입장에서 항상 보이도록 만들기 (0) | 2021.06.19 |
댓글