본문 바로가기
Dev/Unity

[Unity] Teleport 시 특정 좌표로 순간이동하기 (Teleport Anchor)

by RaCoCeTTe 2023. 8. 16.

컨트롤러의 GripButton을 눌렀을때 컨트롤러의 Raycast가 가르키는 방향으로 Teleport(텔레포트)를 합니다.

 

여기서 특정 위치의 텔레포트 좌표로 이동시키고 싶어서 .. 보니까 

 

Teleport Anchor 컴포넌트가 있더라구요!

기록!!

 

 

1. 좌표 역할을 할 Object 생성하기

어떤 Object도 없이 가르킨다고 해서 이동할 순 없습니다. 

 

그래서 좌표 역할을 할 Object가 필요합니다!

 

저는 그래서 Sphere(구)를 생성해 좌표 역할을 하도록 하겠습니다.

 

GameObject → 3D Object → Sphere

 

해당 구체가 생겼습니다. 

 

음.. 그런데 저는 이 좌표가 다른 배경이나 사물을 가리면 안된다고 생각해서 투명하게 해주겠습니다.

해당 Project → Assets에 원하시는 폴더에 Material을 생성합니다. 

저는 일단 New Folder에 생성하도록 하겠습니다.

 

이름은 AnchorOpacity 로 지었습니다.

Rendering ModeTransparent로 변경하시고

컬러를 선택하셔서 투명도를 조절하시면 됩니다.

저는 절반으로 주겠습니다.

 

 

이제 해당 구체에 만드신 Material을 드래그 하시면 됩니다.

해당 사진 처럼 투명해졌다는 것을 볼 수 있습니다.

 

2. Teleport Anchor 컴포넌트 추가하기

해당 구체의 Add Component를 클릭하고 Teleport Anchor를 클릭!!

다른 설정들은 크게 건들일 것이 없고 

Interaction Manager 

Teleportation Provider (보통 Locomotion System에 Teleportation Provider 존재)

만 넣어줘도 기본 동작은 합니다.

Match Orientation은 텔레포트 시 어느 방향에 있을 것인지를 뜻 한다고 하는데 맞는 해석인진 모르겠으나 

저 옵션에서 Target Up And Forward 하면 해당 구체의 위, 앞쪽에 텔레포트를 합니다.

이제 텔레포트가 될 것 입니다.

 

저는 테스트를 위해 해당 구체를 복사하여 두개를 만들어 놓고 테스트 진행 하겠습니다.

 

 

* 결과

영상에서 보시다시피 텔레포트가 해당 구체 위치로 잘 됩니다!!!

 

 

하지만 문제가...

 

해당 컨트롤러가 제대로 호버를 했는지 육안으로 구분이 안되네요.....

호버 시 불투명도를 높이는 작업을 해야하고 

 

해당 좌표로 이동 시 오브젝트는 보이지 않게 해야겠습니다..

 

그건 다음에...