05
06

Joints

씬뷰에서 모든 조인트는 주황색 점으로 표시된다.

Fixed Joint

하이어라키에서 부모 오브젝트와 비슷하게 동작한다.
오브젝트를 특정 지점이나 연결된 rigidbody에 고정한다.
Fixed Joint 예-천장에 달려있는 오브젝트
Break Force, Break Torque: 조인트를 분리하는데 필요한 최소한의 힘
(디폴트 값이 Infinity인데 적당한 값을 주면 분리될 수 있다.)
Fixed Joint 예-천장에 달려있는 오브젝트

Spring Joint

오브젝트가 대상 포인트에 닿기를 시도한다는 원칙 하에 작동한다.

닿으려는 대상 포인트는 씬 뷰에서 설정된다.

연결된 rigidbody가 해당 지점에서 불시에 작용하는 스프링력으로 앵커 지점으로 당겨진다.

rigidbody가 연결되어 있는 경우 스프링이 닿으려고 하는 대상 포인트는
월드 공간이 아닌 게임 오브젝트의 상대위치이다.
씬 뷰에서 연결 위치는 주황색 점 또는 상자로 표시된다.
Fixed Joint 예-천장에 달려있는 오브젝트
Fixed Joint 예-천장에 달려있는 오브젝트
Spring: 스프링의 강도이며, 수치가 높을수록 강도가 센 스프링이 된다.

Damper: 움직이는 조인트가 느려지는 정도를 나타낸다. 값이 클수록 스프링이 덜 빗나가게 된다.

Min & Max Distance: 스프링이 활성화되지 않는 약간의 사각을 설정하기 위한 변수이며,
                                  스프링의 길이를 효과적으로 제한한다.

Break Force, Break Torque: 조인트를 분리하는데 필요한 최소한의 힘

Hinge Joint

문 오브젝트에 적합하다.
힌지의 축을 기준으로 회전한다.
앵커값에 따라 조인트의 위치가 달라진다.
Axis에서 힌지를 중심으로 회전할 축을 지정할 수 있다.
예를 들어 Y값에 1을 넣고 설정하면 아래 스크립트처럼
오브젝트를 클릭하였을 때 문을 여는 것을 간단히 구현할 수 있다.

public float forceAmount = 1000f;
void OnMouseDown()
{ rigidbody.Addforce(-transform.forward * forceAmount, ForceMode.Acceleration);
rigidbody.useGravity = true; }
Hinge Joint와 Spring Joint의 다른 차이점은 Motor 사용과 Limits 사용 여부이다.
Motor는 회전문과 같이 조인트에 속도를 도입하기 위해 사용된다.

Target Velocity: 조인트가 회전하려는 속도이며 해당 속도까지 이르는 데 힘이 가해진다.
Free Spin: 체크하면 힘은 가속할 때만 사용되고 감속할 때는 사용되지 않는다.
Limits는 일반문과 같이 조인트의 움직임을 제한할 때 사용된다.

Min, Max: 조인트가 움직일 수 있는 각도
Min, Max Bounce: 제한점에 도달하였을 때 조인트가 바운드하는 정도
Break Force, Break Torque: 조인트를 분리하는데 필요한 최소한의 힘

유니티 공식 튜토리얼 영상을 참고하여 작성하였습니다.

COMMENT