[2023 메타버스 달서 공모전] 출품을 위해, 제페토를 공부하는 일지
텔레포트 구현 전에, 어울리는 포탈 이펙트를 하나 적용해 보기 위해, 유니티 에셋 스토어를 구경해 보았다.
내 에셋에 추가하기 버튼을 누른 후, 유니티에서 이 에셋을 임포트 해와야 한다.
유니티 최상단 메뉴 [Window] → [Package Manager]
Packages: My Assets에서 추가한 에셋을 임포트한다.
에셋을 임포트하니, 나 같은 경우에는 Asset 폴더에 새 폴더가 하나 생겼고, 그 안에 포탈 프리팹이 있어 그걸 가져온 후, 캡슐 콜라이더 컴포넌트도 추가했다.
저 포탈에 캐릭터가 닿았는지를 판단하기 위해, isTrigger
를 체크한다.
📑 Teleport.ts
스크립트 생성
변수
private Player: ZepetoCharacter;
Start()
함수
Start() {
ZepetoPlayers.instance.OnAddedLocalPlayer.AddListener(() => {
this.Player = ZepetoPlayers.instance.LocalPlayer.zepetoPlayer.character;
});
}
this.Player
로 설정하는 코드이다.OnTriggerEnter()
함수
// 이 게임 오브젝트(포탈)의 트리거에 다른 물체가 닿으면 실행
OnTriggerEnter(collider: Collider) {
if (this.Player == null || collider.gameObject != this.Player.gameObject)
return;
this.Player.Teleport(new Vector3(0, 0, 0), Quaternion.identity);
}
Player
가 null이거나, 포탈에 닿은 물체가 플레이어가 아니면, 함수를 종료한다.Player
를 (0, 0, 0) 좌표로 텔레포트한다.Teleport()
함수Quaternion.identity
를 사용한다.)실행 결과