본문 바로가기
프로그래밍/Unity

Unity3d FixedJoint를 이용한 톱니바퀴 돌리기

by 메르세데쓰 2015. 5. 4.
반응형

 

안녕하세요 메르세데스입니다.  

 

이번시간에는 물리컴포넌트인.. FixedJoint를 이용하여  톱니바퀴를 돌려보는 예제를 해보려고 합니다.

 

책에 예제는 잘 나와있는데 설명이 간략하여 시행착오가 좀 있었습니다. 잘못된 부분도 있었고요.. 

 

아무튼 많은 시행착오를 거쳐 결과물이 잘 나오긴 했습니다. 정말 많은 시간을 할애했네요  역시 후반부로 갈 수록 실제 내용과 다른 부분이 있는것 어쩔 수없나봐요..  독자를 위한 세심함이 아쉬울 뿐입니다.

 

원리는 간단합니다. 아래 화면과같이..  톱니모양으로 구조를 만들어 놓고..   가운데 둥그런 부분이 실린더입니다.  실린더를 중심으로

 

위 아래 좌 우 이렇게 4개의 큐브에 FixedJoint Component를 붙여놓고.. 연결을 해 놓습니다.

 

Unity3d FixedJoint
unity

 

Connected Body에..  실린더의 Rigdibody를  연결해 주는 것 입니다.

 

Unity3d FixedJoint
unity

 

Cylinder 게임오브젝트를 살펴보자면..

 

회전할 때 어긋나지 않도록 하기 위해.. Y축을 제외한 모든 축을 고정시켰습니다. 책에서는 Z축을 해제하도록 표시가 되어있었죠...  (오타)

 

Unity3d FixedJoint
unity

 

 

이걸 수정하고서..   간단한 스크립트를 연결하였습니다.

 

정말 내용은 별거 없습니다. UPDATE 메소드에 물리적인 힘을 가해주는 것입니다.  AddTorque()  이 메소드를 이용했습니다.

 

FixedJoint AddTorque()
unity - c# script

 

 

그리고..    좀전에 만들어 놨었던 톱니모양의 오브젝트를 복사해서 붙여 놓고..    ( 연결되어있던 스크립트는 제거하셔야합니다.)

Play를 눌러서 잘 돌아가는지 테스트 하는 것 입니다.

 

Rigidbody컴포넌트를 사용할 때 Use Gravity에 체크를 해제하여 적용하였습니다.  

 

잘 되네요..  이런 Physics 컴포넌트를 이용한다면.. 단순하지만.. 으외로 재미있는 일들을 만들어 볼 수 있을 것 같습니다..  그나저나 저는 언제쯤 첫작품을 만들어 볼 수 있을까요?  ㅎㅎ

 

 

 

 

반응형

댓글