TUTORIALS
아이템 먹기 월드를 만들어 봅니다.
7 분
샘플 프로젝트 📘 강의에서 사용된 프로젝트 파일 https //github com/naverz/zepeto world sample/tree/main/assets/chapter2 https //github com/naverz/zepeto world sample/tree/main/assets/chapter2 요약 요약 챕터1에서 학습한 내용을 바탕으로 캐릭터 이동 속도와 점프 제어를 이용한 아이템 먹기 월드를 만들어 봅니다 난이도 초급 소요 시간 30분 프로젝트 목표 ontrigger이벤트를 활용한 아이템 습득 처리 text ui 적용 방법 이해 아이템 습득을 text ui에 반영하는 ui controller 제작 제페토 캐릭터의 점프 높이를 제어하는 방법 이해 제페토 캐릭터의 이동 속도를 제어하는 방법 이해 🎬 완성 월드 영상 https //www youtube com/watch?v=goeopqfcbbs https //www youtube com/watch?v=goeopqfcbbs 스크립트 charactercontroller ts import { zepetoscriptbehaviour } from 'zepeto script' import { spawninfo, zepetoplayers, localplayer, zepetocharacter } from 'zepeto character controller' import { worldservice } from 'zepeto world'; export default class charactercontroller extends zepetoscriptbehaviour { start() { //사용자 id를 가져옵니다 (편집기를 통해 로그인됨) zepetoplayers instance createplayerwithuserid(worldservice userid,new spawninfo(), true); zepetoplayers instance onaddedlocalplayer addlistener(() => { let player localplayer = zepetoplayers instance localplayer; }); } } getitem ts import { collider, vector3, gameobject, transform } from 'unityengine'; import { zepetocharacter, zepetoplayer, zepetoplayers } from 'zepeto character controller'; import { zepetoscriptbehaviour, zepetoscriptinstance } from 'zepeto script'; // 경로에서 사용자 정의 스크립트 가져오기 import uicontroller from ' /uicontroller'; export default class getitem extends zepetoscriptbehaviour { public extcomponentgameobject gameobject; private extcomponent uicontroller; private zepetocharacter zepetocharacter; start() { //zepeto 캐릭터 객체 zepetoplayers instance onaddedlocalplayer addlistener(() => { this zepetocharacter = zepetoplayers instance localplayer zepetoplayer character; }); //스크립트 가져오기 this extcomponent = this extcomponentgameobject getcomponent\<uicontroller>(); } ontriggerenter(collider collider) { if (this zepetocharacter == null || collider gameobject != this zepetocharacter gameobject) return; //아이템을 먹은 후 카운트를 증가시키는 메시지를 보냅니다 this extcomponent increasecount(); //아이템 파괴 gameobject destroy(this gameobject); } } jumppower ts import { collider } from 'unityengine'; import { zepetoplayers, zepetocharacter } from 'zepeto character controller'; import { zepetoscriptbehaviour } from 'zepeto script'; export default class jumppower extends zepetoscriptbehaviour { public jumppower number = 5; private zepetocharacter \ zepetocharacter; start() { //zepeto 캐릭터 객체 zepetoplayers instance onaddedlocalplayer addlistener(() => { this zepetocharacter = zepetoplayers instance localplayer zepetoplayer character; }); } ontriggerenter(collider collider) { if (this zepetocharacter == null || collider gameobject != this zepetocharacter gameobject) return; //점프 파워 추가 this zepetocharacter additionaljumppower = this jumppower; } ontriggerexit(collider collider) { //점프 파워를 정상으로 되돌리기 this zepetocharacter additionaljumppower = 0; } } speedup ts import { collider, gameobject, waitforseconds } from 'unityengine'; import { zepetocharacter, zepetoplayers } from 'zepeto character controller'; import { zepetoscriptbehaviour } from 'zepeto script'; export default class speedup extends zepetoscriptbehaviour { private zepetocharacter \ zepetocharacter; public runspeed number = 4; public waittime number = 3; start() { //zepeto 캐릭터 객체 zepetoplayers instance onaddedlocalplayer addlistener(() => { this zepetocharacter = zepetoplayers instance localplayer zepetoplayer character; }); } ontriggerenter(collider collider) { if (this zepetocharacter == null || collider gameobject != this zepetocharacter gameobject) return; this zepetocharacter additionalrunspeed = this runspeed; this startcoroutine(this doroutine()); } doroutine() { //waittime 값만큼 대기 yield new waitforseconds(this waittime); //달리기 속도를 정상으로 되돌리기 this zepetocharacter additionalrunspeed = 0; } } uicontroller ts import { zepetoscriptbehaviour } from 'zepeto script'; import { text } from "unityengine ui"; import { gameobject } from 'unityengine'; export default class uicontroller extends zepetoscriptbehaviour { public resultui text; public maxcount number = 7; private stringproperty string; private message string; private count number; start() { //초기 값 설정 this message = "아이템"; this count = 0; } public increasecount() { this count++; if(this count >= this maxcount) { this resultui text = "클리어!"; } else { this stringproperty = `${this message} ${this count}`; this resultui text = this stringproperty; } } }