> For the complete documentation index, see [llms.txt](https://docs.sandbox.game/the-game-maker-academy_kr/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.sandbox.game/the-game-maker-academy_kr/tutorials-1/advanced-tutorials/make-a-two-way-teleport-system.md).

# 양방향 텔레포트 시스템

게임에 양방향 텔레포트 시스템을 생성하여 창의성을 더해 보세요.

![](https://miro.medium.com/max/900/0*2b5QFZxYycWtbVvf.gif)

**참고: 텔레포트 시스템이 업데이트 되었습니다.**[ ](https://app.gitbook.com/@sandboxgame/s/the-game-maker-academy/tutorials-1/advanced-tutorials/4-way-teleport-system-refined)[**여기를 클릭하여 자세한 내용을 확인하세요.**](https://sandboxgame.gitbook.io/the-game-maker-academy_kr/QXVjiJZSETueiVsHSiOX/tutorials-1/advanced-tutorials/4-way-teleport-system-refined)&#x20;

**참고:** 이 시스템이 작동하려면 아바타가 사망한 후 재생성되어야 합니다. 현재 아바타가 사망하지 않을 경우 텔레포트 시스템을 이용할 수 없으므로 이를 고려하여 게임을 디자인해 주세요.

* 화면 상단의 ‘**Global Parameters**’ 버튼을 클릭합니다.
* ‘**Controller**’ 탭을 클릭합니다.
* ‘**Components**’ 탭을 클릭합니다.\
  \
  이 창에서 아바타의 체력과 사망 조건을 설정할 수 있습니다.

![](https://4143380045-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MO_j99BJEXK4zHqxgqS%2F-MPiJzXIZ6IKH9TzlLx3%2F-MPiLxKeK-96pKo9J8zK%2FSpawner-page-1.png?alt=media\&token=a7063eec-2204-452c-80d0-f7bffe1d7277)

* ‘**Health**’ 컴포넌트의 ‘**Death Event**’ 필드에서 ‘**RespawnToTag**’를 선택합니다.
* ‘**Respawn Tag**’에서 태그를 추가합니다. 위 이미지의 예시에서는 ‘**spawn1**’을 사용했습니다. 게임 내 ‘**spawn1**’ 태그가 추가된 모든 오브젝트는 아바타 사망 시 스폰 포인트로 이용됩니다.
* **‘Death Delay’**&#xB294; 아바타 사망 후 재생성되기까지 땅에 누워있는 시간을 설정합니다. 위 예시에서는 ‘**-2**’를 사용했습니다. 이는 사망 애니메이션 없이 즉시 아바타를 재생성합니다.
* ‘**Instant Death Message**’의 기본 메시지를 다른 옵션으로 변경하면 해당 메시지가 발생할 때 완전한 제어가 가능합니다. 위 예시에서는 '**Killx**'를 사용했습니다.<br>

![](https://4143380045-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MO_j99BJEXK4zHqxgqS%2F-MPiJzXIZ6IKH9TzlLx3%2F-MPiNFVRZciTWesDk3kr%2FSpawner-page-2.png?alt=media\&token=c0a5bd10-7e94-4b27-a9ba-ea564c9d38b2)

이제 아바타가 사망하면 가장 가까운 ‘**spawn1**’ 태그가 적용된 오브젝트를 찾아 해당 위치로 아바타를 재생성합니다. 태그를 찾을 수 없는 경우 시작 지점이나 현재 위치에서 생성됩니다.

* 스폰 포인트로 이용할 애셋을 배치합니다. 클라이언트에서 버그가 발생하지 않도록 게임 메이커 내 기본 오브젝트를 이용할 것을 권장합니다. 이미지의 예시에서는 평평하고 관리에 용이한 크기인 '**Stone Carving**'을 이용했습니다.
* 스폰 포인트를 선택하고 ‘**spawn1**’이라는 태그를 추가합니다.

![](https://miro.medium.com/max/2400/0*HA6A4m1D9cm_DTcc.png)

이제 아바타가 사망하면 해당 돌 조각 위에 다시 생성될 것입니다. 해당 오브젝트를 투명하게 만들거나 게임에서 보이지 않도록 지하로 넣을 수 있습니다.

축하합니다! 이제 게임에 재생성 위치를 설정할 수 있습니다.\ <br>

그럼 양방향 텔레포트 시스템은 어떻게 작동하는 것일까요? 조금 복잡하니 차근차근 함께 알아보도록 하겠습니다.

* ‘**spawn point**’를 선택하고 복사한 뒤 양방향 텔레포트 시스템이 작동할 다른 장소로 드래그합니다.
* 각 스폰 포인트를 선택하고 **오브젝트를 투명**하게 하기 위해 **눈 모양** 아이콘을 클릭합니다.
* 두 스폰 포인트를 선택하고 Physics를 '**No collisions**'로 설정합니다. 이렇게 하면 아바타를 포함한 다른 오브젝트에 의해 방해를 받지 않습니다.
* 스폰 포인트를 더블 클릭하여 아바타의 Health 컴포넌트 설정에 추가한 Tags와 동일한 태그를 추가합니다. 이 예시에서는 ‘**spawn1**’을 사용했습니다.

![](https://miro.medium.com/max/2400/0*S7Z65yVKDrltsU8m.png)

좋습니다! 이제 두 개의 스폰 포인트를 생성했습니다. 이제 텔레포트가 사용될 수 있도록 아바타의 사망을 트리거할 무엇인가가 필요합니다.

다음 단계로 진행하며 어떻게 해야 하는지 방법을 설명해 드리도록 하겠습니다. 양방향 텔레포트 시스템을 정확히 작동시키기 위해서는 두 개의 각자 다른 오브젝트에 '**Asker**' 비헤이비어를 사용해야 합니다. 불필요한 생성기를 삭제하기 위한 ‘**Void**’ 비헤이비어 또한 사용됩니다. 첫 번째 '**Asker**' 비헤이비어는 메시지를 전송하여 텔레포트해야 하는 생성기를 트리거하고, 두 번째 '**Asker**'는 아바타를 죽여 새로운 스폰 포인트로 텔레포트합니다. 아래를 통해 함께 알아보겠습니다.

* 텔레포트 시스템을 활성화할 레버나 버튼이 필요합니다. 이 예시에서는 기본 애셋인 ‘**Ancient Lever**’를 이용했고, 각 텔레포트 지점에 하나씩 추가했습니다.
* 레버에 ‘**Asker**’ 비헤이비어를 추가합니다.
* 플레이어가 읽을 텍스트를 추가합니다. 하나의 답변과 하나의 옵션만 제공합니다. 위 예시에서는 전송할 메시지로 ‘**teleportAway**’를 사용했습니다.

![](https://miro.medium.com/max/2400/0*2PzmNP8E3Nbww5ru.png)

두 번째 **Asker**는 어차피 보이지 않을 것이므로 아무 애셋이나 사용해도 상관 없습니다. 이 예시에서는 작은 기본 애셋인 '**NumPad Switch**'를 사용했습니다.

* 레버 가까이에 오브젝트를 두고 ‘**Asker**’ 비헤이비어를 추가합니다.
* ‘**Message Required’**&#xB97C; ‘**teleportAway**’로 설정합니다.

이제 아바타가 레버와 상호작용할 경우, 질문 1이 전달됩니다. 대답하면 질문 2에 메시지가 전송되며 즉시 로직 체인이 시작됩니다.

* 질문 2의 대답을 아바타의 죽음 즉, 앞서 설정한 '**Kill1**'으로 설정합니다.

![](https://miro.medium.com/max/2400/0*KitexgCpWdHIuwb2.png)

* ‘**NumPad Switch**’를 투명하게 하고 ‘**No Collisions**’로 설정합니다.

![](https://miro.medium.com/max/2400/0*GRirM1EhUpv4dt09.png)

이제 아바타가 사망하면 레버 밑에 있는 스폰 포인트로 텔레포트가 될 텐데, 우린 이걸 원하는 게 아니죠. 다른 쪽의 스폰 포인트로 아바타가 생성되게 하고 싶은데, 둘 다 같은 태그를 가지고 있으니 이제 어떻게 해야 할까요? ‘**Void**’ 비헤이비어를 이용해 레버를 활성화하면 아바타 발 아래 스폰을 삭제하도록 하겠습니다. 아래 설명을 통해 알아보시죠.

* 또다른 ‘**NumPad Switch**’를 놓고 ‘**Void**’ 비헤이비어를 설정합니다.
* ‘**NumPad Switch**’를 투명하게 하고 ‘**No Collisions**’로 설정합니다.
* ‘**Void**’ 비헤이비어 설정에서 Asker가 응답할 때 **가장 먼저 보내는 메시지**인 Message Required를 '**teleportAway**'로 설정합니다.
* **‘Blocks Destruction’**&#xC744; **‘DontDestroy’**&#xB85C; 설정합니다.
* **‘Assets Destruction’**&#xC744; **‘OnlyDestroyFromList’**&#xB85C; 설정합니다.
* ‘**Assets List**’에 텔레포트로 이용할 애셋을 선택합니다. Void는 빨간색 구역의 애셋을 찾게 되므로 텔레포트가 해당 경계 안에 있는지 확인하세요.

![](https://miro.medium.com/max/2400/0*7yEypVHcmP-CdBMZ.png)

이제 텔레포트를 이용하면 다른 쪽으로 텔레포트되어야 합니다!

하지만 아직 몇 가지가 더 남았습니다. 다른 쪽으로 이동할 순 있지만, 첫 번째 텔레포트를 삭제했으므로 다시 돌아올 방법이 없는데요. 이제 이 부분을 설정해 보겠습니다.

* 생성한 두 개의 ‘**NumPad Switch**’를 복사하여 다른 쪽의 텔레포터로 드래그하고 놓습니다.

![](https://miro.medium.com/max/2400/0*gQfyO-1Ekx7KKT-n.png)

* 다른 쪽의 '**Void**' 비헤이비어가 추가된 '**NumPad Switch**'가 **빨간색 구역** 안에 포탈이 있는지 확인하세요.
* Message Required를 ‘**teleportHome**’으로 설정합니다.

![](https://miro.medium.com/max/2400/0*4Fx3Xln0zabqIKnl.png)

* 다른 ‘**NumPad Switch**’를 선택하고 Message Required를 ‘**teleportHome’**&#xC73C;로 설정합니다.

![](https://miro.medium.com/max/2400/0*S9ukJQ1HrRTaEN-E.png)

* ‘**Ancient Lever**’를 선택해 ‘**A1 Broadcast’** 메시지를 ‘**teleportHome**’으로 변경합니다.

![](https://miro.medium.com/max/2400/0*9QSwKr8ms0v1B-bn.png)

이제 발 밑의 생성기를 삭제 후에 아바타를 다시 죽이는 모든 기능을 설정했지만, 이번에는 추가 스폰 포인트가 없습니다. 다른 쪽으로 이동하기 위해 홈 텔레포트를 삭제했기 때문입니다. 그럼 이제 이동할 수 있도록 텔레포트를 반대편으로 불러올 방법을 찾아야 합니다. 이제부터 함께 해 보죠.

* 또다른 ‘**NumPad Switch**’를 만들어 ‘**Asset Spawner**’ 행동을 부여합니다.
* ‘**NumPad Switch**’를 투명하게 하고 ‘**No Collisions**’로 설정한 뒤 생성기 바로 위에 배치합니다. 아래 이미지를 참조하세요.
* ‘**Asset to Spawn**’을 ‘**Stone Carving**’으로 설정합니다.
* **‘Tags’**&#xC5D0; **‘spawn1’**&#xC744; 추가합니다. 이를 통해 새 스폰 포인트로 이동하게 됩니다.
* 다른 설정을 모두 완료하면 **‘Message required’**&#xB97C; **‘teleportHome’** 으로 설정하고 Ctrl + D로 이 애셋을 복사한 뒤, 다른 텔레포터 장소로 끌어다 놓고 메시지를 ‘**teleportAway’**&#xB85C; 변경합니다.
* **‘Physics Type’**&#xC744; **‘No Collisions’**&#xB85C; 설정합니다.

![](https://miro.medium.com/max/2400/0*lqjwZriatj0KkV_P.png)

모두 완료되었습니다! 이제 양방향 텔레포트 시스템을 완성했습니다. 정말 멋지죠!
