CREATE YOUR WORLD
Players & Characters : Advance...

텔레포트 구현

9min
zepeto 캐릭터가 두 지점으로 순간이동할 수 있는 포털을 구현합니다 1단계 순간이동 목표 지점 설정 장면에서 zepeto 캐릭터 생성 코드를 기본값으로 구현합니다 📘 다음 가이드를 참조하십시오 \[ 제페토 캐릭터 생성하기 docid\ qup q pugs7gyvyosl va ] 1\) 순간이동할 지점을 만듭니다 이 가이드에서는 이를 a 지점과 b 지점으로 지칭합니다 계층 구조 > 3d 객체 > 평면을 생성하고 이름을 plane a로 변경합니다 2\) 텔레포트를 시작할 portal 객체를 추가하세요 객체와 상호작용할 수 있도록 collider를 추가하세요 충돌을 감지할 수 있는 영역의 크기를 조정하세요 is trigger를 체크하는 것을 잊지 마세요 3\) 같은 방식으로 총 2개의 텔레포트 포인트를 생성하세요 포인트가 겹치지 않도록 위치를 조정하세요 2단계 스크립트 작성하기 1\) 프로젝트 생성 > 생성 > zepeto > typescript로 이름을 teleport로 변경합니다 2\) 아래와 같은 샘플 스크립트를 작성합니다 스크립트가 부착된 객체의 충돌 영역에서 zepeto 캐릭터와 충돌이 감지되면 destinationobject로 텔레포트하는 로직입니다 import { collider, vector3, quaternion, gameobject } from 'unityengine'; import { spawninfo, zepetocharacter, zepetoplayer, zepetoplayers } from 'zepeto character controller'; import { zepetoscriptbehaviour } from 'zepeto script'; export default class teleport extends zepetoscriptbehaviour { // 텔레포트할 목적지 객체 public destinationobject gameobject; private localcharacter zepetocharacter; start() { // 로컬 플레이어를 찾아 localcharacter에 설정합니다 zepetoplayers instance onaddedlocalplayer addlistener(() => { this localcharacter = zepetoplayers instance localplayer zepetoplayer character; }); } ontriggerenter(collider collider) { // localcharacter가 아직 설정되지 않았거나 충돌한 gameobject가 localcharacter가 아닐 경우 함수 실행하지 않음 if (this localcharacter == null || collider gameobject != this localcharacter gameobject) { return; } // localcharacter를 destinationobject의 위치로 텔레포트합니다 this localcharacter teleport(this destinationobject transform position, quaternion identity); } } 3\) 스크립트 작성을 마친 후, 텔레포트를 시작할 portal 객체에 스크립트를 추가합니다 4\) 인스펙터에서 목적지 객체를 할당합니다 목적지 객체 텔레포트 끝에 도착할 포탈 객체입니다 3단계 실행 포털 근처에 있을 때 zepeto 캐릭터를 a 지점에서 b 지점으로 순간이동합니다 이 가이드는 내가 조작하는 로컬 플레이어의 순간이동만 처리합니다 멀티플레이어 월드 의 경우, 다른 플레이어의 위치 동기화가 추가로 필요합니다 멀티플레이 샘플의 동기화 구성 요소를 사용하면 위치 동기화가 쉽게 구현됩니다 📘 멀티플레이 샘플 zepeto 멀티플레이 구성 요소 https //github com/naverz/zepeto multiplay example/tree/main/assets/zepeto multiplay component https //github com/naverz/zepeto multiplay example/tree/main/assets/zepeto%20multiplay%20component