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

Snap.gif
Snap Interactor / Snap Interactable

 

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

 

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


Snap Interactor

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

 

etc-image-1
Building Blocks

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

 

etc-image-2
Snap Interactor추가

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

etc-image-3etc-image-4
Snap Pose Transform

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

 


Snap Interactable

etc-image-5
Snap Interactable / Snap Zone

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

etc-image-6etc-image-7
Snap Interactable / CubeArea

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

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

 

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


Visual

etc-image-8etc-image-9
Visual

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

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