Unity/기초 예제

유니티 Joints, Hinge Joint 간단한 예제 유니티 기초

최애뎡 2021. 6. 2. 23:02
728x90
반응형

이번 예제는 간단하게 3D Object인 Plane과 Cube, Sphere를 사용하였으며
바로 위 화면에 보이는 Cube과 Door라는 오브젝트 안에 있는 Left, Right(Cube)에는
AddForce 예제 때 사용하였던 Ex_06_1 스크립트가 포함되어있고
이번에 공부할 Hinge Joint가 적용되어있습니다.
Sphere의 경우는 Rigidbody를 이용해서 오브젝트 움직임 구현하는 예제 때 사용했던 Sphere입니다.

-Hinge Joint-
Hinge Joint는 문 같은 물건에 안성맞춤이며
Spring Joint와 일부 속성을 공유합니다.
쉽게 생각하면 문의 경첩 역할을 해준다고 보시면 되겠습니다.
Hinge Joint에서 축의 위치를 설정하고 
그 기준으로 회전하게 됩니다.
속성 중 Spring은 앞서 보았던 Spring Joint의 속성과 같습니다.
Hinge Joint에서 어떻게 Spring 속성이 들어갈까요?! 잠시 뒤 실행 화면에서 보도록 하겠습니다!!!
Hinge Joint에는 Motor라는 속성이 존재합니다.
회전문과 같이 속도를 도입하기 위해 사용됩니다.
Targer Velocity -> 
회전하려는 속도이며 해당 속도까지 이르는데 힘이 가해집니다.
Free Spin -> 체크하면 힘은 가속할 때만 사용되고 감속할 때는 사용되지 않게 됩니다.
Limit 속성은 여러 가지를 제한할 때 사용됩니다.
Max와 Min은 움직일 수 있는 각도의 최소 최댓값을 지정하게 됩니다.
Hinge Jont도 다른 Joint와 마찬가지로 Rigidbody는 필수입니다. 나머지 속성들은 앞서 보았던 Joint 들과 비슷하기에 넘어가고 어떤 움직임이 나올지 실행 화면을 바로 보도록 하겠습니다.

 

AddForce 예제에서 사용한 스크립트를 적용시켰기 때문에 마우스로 클릭을 하게 되면 Cube에 힘이 가해지는데요 여기서! 보통의 Cube였으면 날아갔겠지만 지금 Cube는 Hinge Joint를 적용하였기 때문에 날아가는 모습이 아닌 Hinge Joint에서 설정한 축을 기준으로 회전을 하게 되는 걸 보실 수 있습니다.
여기서 왼쪽의 Cube의 경우는 회전을 방해할 요소가 없기 때문에 쭈욱 회전하지만 오른쪽의 경우는 회전을 방해하는 검정 Cube로 인해 회전할 수 있는 각이 줄어들게 됩니다.

방금 전까지 잘 돌아가던 Cube가 왜 갑자기 저렇게 됐을까요?!
이 부분이 바로 Spring 속성을 이용한 부분입니다.
Use Spring을 체크하고 Spring 값에 100의 값을 넣어주니 저런 식으로 됐습니다.
Spring의 느낌이 오시죠?

왼쪽 이미지에서 화살표가 보이시나요?
이 화살표가 Hinge Joint의 축이 됩니다.
축의 방향이나 위치를 설정할 때에는
Hinge Joint 속성 중
Anchor 와 Axis를 이용합니다.
그리고 여기서 잠 깐!
Hinge Joint를 적용하고 꼭 위와 같은 식으로 만 써야 하나요?!
절대 아닙니다!
아래 실행 이미지를 보도록 할까요?

 

Sphere은 괜히 가져온 게 아니었죠~!
이런 식으로 다른 물리적 힘이 가해졌을 때도 그 힘에 맞게 축을 기준으로 움직이게 됩니다!

 

위 내용은

https://unity3d.com/kr/learn/tutorials/topics/physics/physics-joints?playlist=17120

 

3D Physics - Unity Learn

Explore the most important topics related to the Unity 3D Physics engine, from Colliders to Raycasting.

learn.unity.com

을 참고하였습니다.

반응형