★개발자 노트/Unity3D

unity3D 객체에 물리엔진 적용하기

abst 2013. 5. 7. 17:48
반응형

안녕하십니까 3번째 시간입니다. 이번에는 저번시간에 만들어 두었던 객체들에 물리 엔진을 적용하는것을 해보도록 하겠습니다.


먼저 저번시간에 만들어진 파일을 열어보면 구와 켑슐 원기둥 큐브 등이 있습니다.

그리고 그룹핑이 구밑에 그룹핑되어 있는 부분들이 있는데요 그룹핑을 해제해 주시기 바랍니다.


그룹을 해지해 주는 이유는 한개의 객체에 물리 엔진을 적용하였을 경우 다른 객체도 같이 움직이는 것을 예방하기 위해서 입니다.


물리엔진을 적용하는 방법은 너무나도 쉽고 간단해서 뭐야 이게 끝이야? 싶기도 합니다 ㅎㅎ

먼저 구를 선택합니다. 구에다가 먼저 물리엔진을 적용해 보도록 할께요

Component -> Physlcs ->Rigidbody 이게 물리 엔진입니다. 클릭하세요.


네 그럼 구에 물리엔진이 들어갔습니다. Inspector텝에 보이시죠??


네 그럼 물리엔진 적용하기가 끝났습니다. ^^

하고 끝내면 안되겠죠???

rigid body 옵션값은 다음과 같습니다.


mass - 질량

center of mass - 질량 중심축

static friction - 첫 오브젝트와 만났을때의 마찰력

dynamic friction - 움직이는동안의 마찰력

bounciness - 반동값 1.5상되면 힘이 점점 강해진다.

damping - 탄성과 저항

impulse - 방향력 가속도값~점점 빨라지면서 움직임~

spin impulse - 프로펠러처럼 돌면서 회전 가속도값(점점 빨라지거나 느려짐)


구에 중력값을 준후에 플레이를 시켜 보면 구가 아래로 떨어지는것을 확인하실수 있습니다.




위에서 아래로 바닥에 떨어졌죠??? 이제 구를 바닥이 없는 곳으로 드래그앤 드롭으로 이동한후 손을 놓아버리면 하염없이 아래로 떨어져 내려 갑니다.




중력의 영향을 받지만 받쳐지는 곳이 없으니 계속 떨어져 내려 가는 것입니다.

바닥을 / 이런식으로 기울이게 되면 바닥에 다은후 굴러 가는것을 확인하실수 있습니다.


여기서 한가지 문제점은 쇠공이더라도 떨어져서 바닥과 충돌할시에는 어느정도의 반동이 있다는것을 누구나 알고 있으나 현제 여기서 보여준 모습들은 떨어져서 바닥에 딱 붙어 버렸죠? 

그래서 이번엔 반동을 추가로 넣어보도록 하겟습니다. 


Project 텝에서 마우스 오른족을 눌러서  import Package -> physic Materials를 선택해 준니다 반동 값을 주는 클레스 입니다. 선택해서 가져 올수 있지만 일단은 모두 선택하여 import 합니다.



클래스를 불러오게 되면 project창에 페키지가 추가된것을 확인하실수 있습니다.

추가된 패키지들을보면 ice metal wood 등 여러가지의 질감들이 들어있습니다 원하시는 질감으로 선택을 하시면 그렇게 움직여 보일것입니다. 우리는 Rubber를 넣어 보도록 하겠습니다.

반동을 넣는 방식은 두가지 입니다. 


구를 선택하였을때 sphere collider 부분에 붉은색 박스 부분으로 패키지를 드래그앤 드롭을 하던가 아니면 ⊙ <- 이모양을 클릭하시면 옆에 팝업창이 뜨고 그중에 Rubber를 선택하시면 됩니다.

그리고 나서 플래이를 해보시면 바닥에 다은후 다시 팅겨져 올라오는것을 확인하실수 있습니다. ^^


그럼 이번 강의도 수고 하셨습니다.~~~




반응형