[Unity]02.VR 시선처리 #2 - 웨이포인트로 지정된 경로 이동

안녕하세요 유랑입니다.



오늘은 웨이포인트를 이용해서 이동해 보겠습니다.

코드 작성 후 VR기기에 적용해 볼테니 준비해 주세요^^




1. 웨이포인트(Waypoint)



이동 경로 중 어느 한 지점을 지칭하는 단어로 이 방식은 미리 정해진 위치로만 이동할 수 있는 한계가 있지만

구현하기가 쉽고 별도의 컨트롤러 없이도 이동할 수 있다는 점에서 다양한 콘텐츠 구현에 사용된다.







1-1) 웨이포인트 만들어 주기



웨이포인트를 만들어 주기 전에 빈오브젝트를 생성하여 Grasses ~ Stones까지 자식으로 넣어줍니다.






빈오브젝트를 만들고 이름을 WayPointGroup으로 변경한 뒤 위치는 아무 곳이나 지정해줍니다.

웨이포인트들을 넣어줄 부모오브젝트입니다.





WayPointGroup 밑에 빈오브젝트를 생성 후 이름을 Point로 바꾼뒤 

Tag값과 Sphere Collider값을 다음과 같이 설정해 줍니다.

당연히 Sphere Collider는 Add Component를 이용해서 추가해주었습니다.





웨이포인트를 하나를 놓치는 않게죠? 근데 여러 개를 생성하면 과연 플레이어가 이 위치로 가질지 의문입니다.

지면 밑에 있거나 위에 있으면 못가기 때문이죠.

시각적으로 확인하기 위해서 WayPointTrack 스크립트를 작성해 줍시다.

스크립트는 WayPointGroup에 추가해 줍니다.






1-2) WaypPointTrack 스크립트



웨이포인트를 시각적으로 보기 편하게하기 위해서 다음과 같이 스크립트를 작성해 주세요.

GetComponentsInChildren을 쓰게되면 자식오브젝트의 정보를 가져오는데 

이 때 부모의 정보까지 가져오기 때문에 nextIdx는 1로 설정해 준겁니다.

시작웨이포인트 부터 그다음 웨이포인트까지 라인을 계속 그려주는거죠.








이제 웨이포인트들을 복사하고 붙여넣기 하면서 가고 싶은 위치에 놓아주세요.

그대신 다시 원점으로 돌아가도록만 해주세요.

최대한 지면가까이 해주시고, 선이 중간에 끊기면 안됩니다.






1-3) MoveCtrl 스크립트



이제 캐릭터가 해당 웨이포인트로 이동하도록 스크립트를 작성하겠습니다.

스크립트를 생성 후 MoveCtrl로 이름을 바꾼뒤 다음과 같이 작성해 주세요.

enum을 쓴 이유는 웨이포인트 뿐만 아니라 시선처리와 DAYDREAM에서 사용하는 경우까지 쓰고 싶어서입니다.

Player가 첫 번째 웨이포인트로 이동 후 Trigger가 일어나면 그 다음 웨이포인트로 가는 스크립트 입니다.











1-4) VR구동하기



유니티 엔진에서 확인해도 되지만 핸드폰에 어플을 설치하여 확인해 보도록 하겟습니다.

핸드폰과 컴퓨터를 연결 후 File => build Settings에 들어가 Build And Run을 누릅니다.






자동적으로 apk가 만들어 지는데 적당히 이름을 정하고 저장해 주세요.





이제 핸드폰 상에서 웨이포인트를 따라 이동하는 화면을 볼 수 있습니다^^






2. 마무리



오늘 강의는 여기까지입니다.

웨이포인트를 만들어서, 웨이포인트를 따라 이동해 보았습니다.

다음 시간에는 시선에 따라 캐릭터가 움직이도록 하겠습니다.

오늘도 고생하셨습니다.

감사합니다.



수업자료: https://github.com/YouRang12/-Tistory-Unity---VR


댓글

Designed by JB FACTORY