유니티 시작 3일차: 리지드바디(Rigidbody) 써보기

Posted by ITPangPang
2016. 5. 7. 00:23 Unity3D/알아두면 좋은것 및 기본 사용방법


유니티 시작 3일차 

리지드바디(Rigidbody) 써보기


- Rigidbody는 "강체"라는 뜻입니다

- 강체라는 말은 잘 모르겠지만 리지드바디를 적용하면

  오브젝트의 물리적제어를 허용하게 됩니다.

- 중력을 줄 수도 있고, 힘도 넣어줄 수 있습니다.




바로 써보는게 빠르겠죠?


일단 

Sphere를 하나 

만들어줍니다


여기다가 Rigidbody를 

추가시키겠습니다


Sphere를 선택하고

옆에 Inspector

창에서

Add Component

클릭해줍니다


클릭을 하면

무언가 검색할 수 있게 

되어있습니다


검색창에 Rigidbody라고 칩니다

(Ri정도까지만 쳐도 바로 나옵니다)


아 참고로

Add Component

단축키는

Ctrl+Shift+A

입니다


Rigidbody를

선택하게 되면


아래와 같이

Inspector에

Rigidbody라고

생깁니다


잠깐 보자면

일단 눈에 띄는게

Use Gravity가

선택되어있습니다.


Rigidbody

추가만 해줘도

자동으로 중력이 

생성됩니다.


이 상태에서

바로 Play버튼을 눌러도

(단축키 Ctrl+P입니다)


공이 중력에 의해서

아래로 떨어지는 것을

확인할 수 있습니다


바닥(Plane)을

깔고 하면

뚝 떨어지는것을

더 잘 느낄수 있습니다



하나하나 보자면


mass : 말 그대로 질량입니다

drag : 저항or저항력입니다.

(drag force:저항력)


* drag : 10으로 변경했을때

위와 비교

프레임을 늘리면 용량이 커지니

움짤을 좀 구리게 찍어서 

끊기는 면이 있지만..

대충 저항이 느껴지시나요?



다음은

Angular Drag : 회전저항력입니다

역시 설명보단 실제로 보는게 이해가

빠르죠?..

품질이 구려도 이해좀..

공 굴러가게 하기 위해

Plane을 좀 기울이고 실험


AngularDrag : 0


AngularDrag : 10



다음은

Is Kinematic : 선택 시 Transform에 의해서만 

제어가 됩니다.



다음은

Interpolate : Interpolate, Extrapolate

두가지가 있습니다


Interpolation이라는 뜻이

보간이라는 뜻입니다

좀 더 풀어서 말하면

두 점 사이를 연결하는?

방법으로


여기서는 렌더링 프레임을

부드럽게 해주는 역할입니다


Interpolate는 이전프레임 기반이고

Extrapolate는 다음프레임 기반입니다.


다음은

Collision Detection : 뜻 그대로 충돌감지입니다

초반에는 거의 Discrete까지만 쓸것으로 예상

(물리프레임별 충돌 감지, 계산이 쉬움)


다음은

Constraints : Freeze Position + Rotation입니다

이것도 뜻그대로 멈추게 해버리는것입니다.

이동, 회전을 중지시킬수 있는데

위 그림에서는 Position Z에 

체크를 했습니다


이렇게 되면 아까 위에서

Sphere를

기울여서 떨어트렸었는데


Z에 체크를 해버리면

Z축 자체를 못움직이게 해서

공이 경사면에 있어도

떨어지지 않게 고정시킬 수 있습니다