UNITY3D

Unity URP / XR toolKit을 이용한 VR환경 세팅 -3 이동

이디하임 2020. 4. 12. 21:49

아이템을 줍고 이런것들은 문제없이 되었으니 이제는 이동을 구현해보자.

이번 글에서는 텔레포트 이동을 구현하고 다음글에서는 컨트롤러 키패드를 이용한 이동을 구현해보겠다.

 

 

2번 게시글의 프로젝트를 그대로 가져왔다.

그런데 일시적인 현상인지 모르겠는데 아이템 그랩부분에서 무언가 오류메세지를 계속 뱉어서 

그랩관련한 스크립트들은 일단 지워주었다.

 

XR Rig에는 Teleportation Provider 스크립트와 Locomotion System 스크립트를 넣어준다.

해당 스크립트들에 대한 자세한 설명은 

https://docs.unity3d.com/Packages/com.unity.xr.interaction.toolkit@0.9/manual/locomotion.html

 

Locomotion | XR Interaction Toolkit | 0.9.4-preview

Locomotion The XR Interaction package provides a set of locomotion primitives that offer the means to move about a Scene during an XR experience. These components are: An XR Rig that represents the player A Locomotion System A Teleportation System A Snap T

docs.unity3d.com

위의 링크를 따라가 보면 된다. ....저것도 한글로 번역해볼까.

 

Teleportation Provider 스크립트는 Locomotion system을 커스텀 프리팹으로 받는다. 

locomotion system은 XR rig를 커스텀 프리팹으로 받는다.

 

잘 넣어주도록 하자.

 

오른손 왼손 컨트롤러 오브젝트에는 XR Ray interactor / Line Renderer / XR Interactor Line Visual 스크립트를 넣어준다.

 

컨트롤러로부터 레이가 나가고, 반환받는것을 관리해주는 스크립트들이다.

 

XR Ray Interactor에 레이가 닿았을때 상호작용할(반환받을) 레이어마스크를 설정해주면 

해당 레이어의 오브젝트만 Ray의 결과로 받환받을 수 있다.

 

땅의 레이어를 위에서 반환받도록 세팅한 Ground로 세팅하여주고, Teleportation Area 스크립트를 넣어준다.

 

앵커가 될 오브젝트에는 Teleportation Anchor 스크립트를 넣어준다. 

앵커에 대한 설명은 위에 유니티 도큐멘트를 보아도 되지만, 일단 가져와 보면 

 

The Teleport Anchor is a specialization of the BaseTeleportInteractable class that allows the user to teleport to an anchor location by selecting the anchor or an area around it.

 

어떠한 특성한 앵커로 텔레포트 하는것을 전담하기 위한 클래스라고 한다. 

솔직히 그냥 그라운드에서 이동하게 하는것과 큰 차이가 얼마나 있는지는 아직 잘 모르겠지만, 차차 공부하면서 알아갈 수 있지 않을까 생각한다. 

앵커가 세팅된 오브젝트를 보면 저렇게 파란색으로 앵커 포지션이 나오게 되는데 그라운드의 어느곳이든 레이가 반환되어서 버튼을 누르면 앵커포지션으로 이동이 되는걸 확인할 수 있는데, 이를 따라서 무언가 텔레포트 시킬때 위치와 로테이션을 고정하고 싶을때 사용하는 옵션이 아닐까 생각한다.

 

 

예제 영상은 위와 같다. 

 

정말 코드 한줄 안치고 VR에서의 기본적인 이동이 구현이 가능하다는걸 보면서

유니티 엔진이 어디까지 발전할지 궁금해지고 그만큼 더 두려워진다.

 

열심히 공부해야지.