유니티 Snap Interactor을 이용해서 원하는 위치에 오브젝트 놓기 #Socket

Snap Interactor / Snap Interactable

 

Snap Interactor 컴포넌트와 Snap Interactable을 활용하면 원하는 위치에 원하는 오브젝트를 놓을 수 있습니다. 이때 어느정도 간격이 떨어져 있어도 Smooth하게 해당 위치로 날아가면서 딱 Snap되듯 위치하는 기능도 추가할 수 있습니다.

 

이번 시간에는 원하는 위치에 Snap하는 방법과 Smooth하게 가는 방법, 그리고 해당 위치에 Snap할 수 있음을 시각적으로 알려주는 방법까지 알아보겠습니다.


Snap Interactor

Snap Interactor컴포넌트가 붙는 객체는 인터렉션하는 객체입니다. 주로 원하는 곳에 두게 되는 오브젝트입니다. 예를 들면 열쇠같은 객체가 있습니다.

 

Building Blocks

Building Blocks 기능을 이용해서 간단하게 인터렉션할 수 있는 Cube를 만들어줍니다.

 

Snap Interactor추가

그 Cube에 자식으로 빈오브젝트를 하나 생성 후 이름을 Snap Interactor로 바꿔주고 Snap Interactor컴포넌트를 붙여줍니다. Pointable Element, Rigidbody, 그리고 Optionals에 Snap Pose Transform 필드에 각 알맞은 컴포넌트들을 할당해줍니다. Snap Pose Transform에는 아무것도 할당해주지 않으면 본인 자신을 할당하게됩니다.  

Snap Pose Transform

만약 Snap Pose Transform에 다른 객체를 둔다면 해당 객체를 기준으로 Snap되게 됩니다.
또 다른 옵션으로는 일정 시간동안 Snap이 되지 않았을 경우 해당 Snap Zone에 자동으로 위치해주는 기능이 있습니다.

 


Snap Interactable

Snap Interactable / Snap Zone

Snap Interactable컴포넌트는 해당 위치에 Snap Interactor객체를 위치시키게 해주는 역할을 합니다.

Snap Interactable / CubeArea

Snap Interactable컴포넌트에는 가장 중요한 부분이 Rigidbody와 Provider 필드입니다.

Rigidbody에는 두 번째 사진처럼 Snap이 가능한 부분을 Collider + Rigidbody로 구역을 만들어주어야 합니다.

 

MoveTowardsTarget 컴포넌트는 해당 위치로 이동시켜주는 역할을 합니다.


Visual

Visual

해당 위치에 Snap Interactor을 둘 수 있음을 시각적으로 알려줄 때 사용되는 컴포넌트들입니다.

이용하시면 두 번째 사진처럼 만들 수 있습니다.